HN user

ternaus

443 karma

If AlbumentationsX is useful for your work, please give it a GitHub star:

https://github.com/albumentations-team/AlbumentationsX

Stars help demonstrate real-world adoption when we apply for grants that fund open-source maintenance, testing, documentation, security improvements, and new features.

Posts23
Comments99
View on HN
opencv.org 1mo ago

OpenCV 5 Is Here: The Biggest Leap in Years for Computer Vision

ternaus
865pts148
news.ycombinator.com 5mo ago

Ask HN: Where does modern geometry survive contact with SGD?

ternaus
1pts0
www.ikot.blog 5mo ago

Anthropic Performance Team Take-Home for Dummies

ternaus
1pts0
ashvardanian.com 10mo ago

A String Library Beat OpenCV at Image Processing by 4x

ternaus
5pts0
albumentations.ai 1y ago

Albumentations: Licensing Change and Project Fork

ternaus
1pts1
news.ycombinator.com 1y ago

Ask HN: Need your help with Albumentations feedback

ternaus
1pts0
githublb.vercel.app 2y ago

Show HN: Leaderboard of Top GitHub Repositories Based on Stars

ternaus
10pts1
pypilb.vercel.app 2y ago

Show HN: Leaderboard of most downloaded PyPI packages

ternaus
2pts1
medium.com 4y ago

Unified Sports Classification System

ternaus
2pts0
ternaus.blog 4y ago

The birth of the Open Source library Albumentations

ternaus
1pts0
github.com 4y ago

Albumentations 1.1.0 Was Released

ternaus
1pts0
ternaus.blog 5y ago

YouDo Product Skills Track

ternaus
1pts0
competitionwinnersshare-out.splashthat.com 5y ago

Kaggle winners of the Lyft's motion prediction challenge present their solutions

ternaus
4pts0
ternaus.blog 5y ago

Airbnb. Thanksgiving. Burglary

ternaus
1pts0
medium.com 5y ago

Pruning Neural Networks with Catalyst

ternaus
1pts0
medium.com 5y ago

Lyft Uses PyTorch to Power Machine Learning for Their Self-Driving Cars

ternaus
2pts0
habrastorage.org 5y ago

The potential of the medical imaging industry in one bill

ternaus
3pts7
ternaus.blog 5y ago

I trained a model. What is next?

ternaus
2pts0
www.kaggle.com 5y ago

New Kaggle Competition: Lyft Motion Prediction for Autonomous Vehicles

ternaus
1pts1
medium.com 5y ago

Multi-Target in Albumentations

ternaus
1pts0
medium.com 6y ago

Face recognition on 330M faces at 400 images per second

ternaus
2pts0
medium.com 6y ago

Fresh Grad’s Compensation in Silicon Valley

ternaus
4pts0
towardsdatascience.com 6y ago

Nine simple steps for better-looking Python code

ternaus
1pts0

Audiobooks is the magic trick.

I listen them in the gym between sets, I listen them in the car, in the plane, in taxi, doing chores at home and in any other place where you cannot do more useful things, and you cannot read as well.

Five minutes here, ten there and it adds quite fast.

[1] I cannot consume every book as audiobook, some are so dense in material, that it requires actual reading.

[2]Not every book exists as audio book and not every book has a good narrator, which is quite important.

but:

[1] Quite often, you can listen them in parallel to other activities. [2] When you are driving with someone, listening audiobook together adds plenty of interesting topics to discussions after the drive + bonding experience (you are doing something together, you are focussing on the same thing together) [3] You can listen with various speeds, and for me, so far it went up to 1.5x on some books, which speeds up the process.

--- I do not have a problem to find books to read or listen as author of the post. My "To Read" list grows much faster than the information I consume.

Image augmentations library Albumentations is heavily based on OpenCV, which allows it to beat torchvision, Kornia, PIL, and other similar libraries.

But there is still a huge room for improvement in terms of performance, as for some low level operations StringZilla or Numkong are faster, for some, especially for float32 images, numpy is the best.

The most annoying component is that OpenCV is limited to input shapes like (H, W, C), which limits its application to videos and volumes with shapes (X, H, W, C)

PyTorch Landscape 2 months ago

What is sad is that: - many projects are arrived. - It is unclear who is responsible for the updates.

I work on one of the projects in the list, need to update a link to the project, as old one is not actual anymore. And unclear how to do it => at least with respect to my project Albumentations, the landscape is outdated :(

--- Also, added the project to the Pytorch Ecosystem many years back, but if you ask me about practical value of being the part of the Ecosystem, I would not be able to tell you anything useful.

Reminds me approach that you get in nearly every book on "How to meet girls".

Systematic, efficient.

Played this game myself. And I did it when moved to the US with a limited English and lack of understanding of the local culture and traditions.

After a few years of dedicated practice, moved me from the state that author describes to the complete lack of fear talking to strangers, I can easily make nearly ever conversation warmer, deeper and more relaxed.

------

A couple more comments, based on personal experience:

[1] It works better if place where you meet is your deep comfort zone, a very familiar place

- gym, if you are going there for some time, know where each type of equipment is. - dance venue that you were going dancing for a while - art class - etc

[2] It helps a lot if you are quite proficient in the activity, expertise brings respect, and higher social status by itself, even when you do not talk to anyone.

[a] in the gym ideal technique > strength > looks / size of your muscles.

- Third class in powerlifting, based on Soviet grading system is a threshold, passing which life changes (question of months, maybe a year). You get more respect from men and curiosity from women, and you get more confident, because you got stronger: https://www.sportscategory.info/en/powerlifting - As your shoulders get broader, fat fat percentage goes down - it improves your appearance -> your confidence -> helps as well.

[b] Dance venue is a great place to meet people and address your fears / issues. Rule of the game - during the class before the social part teacher makes you switch partners => you will be forced to introduce yourself to the partner, this person cannot turn away and will need to reply, introduce themselves.

Later when social part starts - people switch partners every dance => - you start with inviting for a dance people whom you already met during the introductory class. - In 3 hours of social dancing you dance with 20+ people - As your skill grows (question of weeks-months) and dancing with you is not torture anymore, but quite the opposite - it is enjoyable => you get more relaxed, people want to dance with you => conversations start all the time - In dancing, as a man you lead, and this transfers to other activities (helped to become a lecturer teacher in University), but you also better lead the conversation. I.e. it is not a random exchange of information anymore, but you can vary it's direction and emotional component.

--- [3] Some places are better than others.

It is good to go to the gym, to get more friends, but not directly. I do not like talking to people in the gym, I suspect that other people as well.

you are recovering between sets, focussing on the audiobook, moving weights - you are always busy with something. I also heard that women do not like talking to men in the gym as they may feel "no in the best form", i.e. for her - talking to men feels comfortable, when she took shower, picked a cloths that fits her, not when she is sweaty, struggling with weights and sees other ladies in the gym who are more fit.

Places like:

- climbing gym <- very social activity where you solve same problems - trying to climb a route. You can just tell someone who struggled to climb a bouldering problem something like: "Nice!", "Good job!", "Well done", and ask for a tip.

Ot if you already climbed it - give a tip yourself. These are natural openers.

If you climb similar level of problem, you will get stack in the gym in the same spots, taking a break between tries - universe will force you to talk and socialize.

- Dance venue, as I mentioned above - Hikes - any types of group classes: scuba diving, wine tasting, art classes, etc will do the job quite well

[dead] 5 months ago

I wrote a long practical guide on image augmentation based on ~10 years of training computer vision models and ~7 years maintaining Albumentations.

Despite augmentation being used everywhere, most discussions are still very surface-level (“flip, rotate, color jitter”).

In this article I tried to go deeper and explain:

• The *two regimes of augmentation*: – in-distribution augmentation (simulate real variation) – out-of-distribution augmentation (regularization)

• Why *unrealistic augmentations can actually improve generalization*

• How augmentation relates to the *manifold hypothesis*

• When and why *Test-Time Augmentation (TTA)* helps

• Common *failure modes* (label corruption, over-augmentation)

• How to design a *baseline augmentation policy that actually works*

The guide is long but very practical — it includes concrete pipelines, examples, and debugging strategies.

Would love feedback from people working on real CV systems.

Link: https://medium.com/data-science-collective/what-is-image-aug...

If standard approach does not work => time to learn how to work hard:

[1] For every position you look for people at LinkedIn in that company. If you are already connected ask for referral.

[2] If not, look for common connections that can introduce you.

[3] If there is none => send request for adding everyone from the company to the friends.

[4] Message everyone, inviting for a coffee or virtual chat to learn about the company.

[5] If you believe that you are a good fit => say this.

----

And you spend first 4 hours of every day messaging, messaging, messaging. The response rate will be low. But you need only one job.

----

And if you do it for 6 months every day, there is no way you will not get many interviews.

----

Every interview you fail => you extensively study to address limitations of your skillset.

-----

Basically, there is no: "I have a degree, hence I deserve a job", but there is: "hard work is the goal".

-----

P.S. Somehow blog post reminds me why online dating is not working that well for men. Competition is enormous, the number of ladies is limited and things like: "I am an average man, hence I deserve attention from ladies" does not work as well

They wanted it. They paid for it. They enjoyed it. The counter example is open-source software.

If we talk about popular packages: - people want it - people enjoy it - people do not pay for that

But force-feeding with strict licenses like Ultralytics does works. Yes, it is force-feeding, but noone wants to pay the price, unless there is no other choice.

Do it in a very similar way in Cursor:

Steps: [1] Add pre-commit hook [2] Write design doc as mdc file to .cursor/rules [3] Iterate on design doc till it describes what I want [4] Ask to write the code [5] Where possible - extend the test suite. [6] On every commit check that pre-commit hook checks and tests pass [7] On every bug extend the test suite [8] Write as many as possible custom pre-commit hooks [9] Add extensive docstrings to the complex code -> adds extra context to the LLM [10] Iterate [11] From time to time ask to verify that design doc is up to date

I am all for intuitive interfaces, but I am also a big proponent of learning hot keys in every program I work with.

It would be better for design to be intuitive, but you struggle only the first time, while interfaces overloaded with information will take some of your attention every time you look at them

Interesting representation. Not rows in the database as samples and columns as features, but a whole graph.

Makes training much more flexible, and fine tuning as well. Now, when a new data in terms of samples or new tables are connected to the olds ones you just extend the existing graph, without changing its existing morphology much.

Although it is unclear if it is scientific: "Look how cool we can do" or business result: "Look how much value do we get from this representation"

"it is desirable for the software to run as a locally installed executable on your device, rather than a tab in a web browser."

An OS agnostic apps, meaning web apps is such a killer feature. You can use the same app on: Linux, Mac OS, Windows, Android, iOS

Even more, developing for web is typically faster. You made the change in the code => you see the result on the screen. For example: phone apps written in swift could be faster than ones written in react-native, but it is so annoying waiting for the compilation to finish after every small change.

----

When I worked on imagery data in an autonomous vehicles company product managers pushed us to explore the data in the cloud and it was soooo inconvenient.

As the result, PMs were ignored and everyone had a personal desktop with GPUs and fast SSDs that had the local copy of the data, so that debugging, prototyping would be fast.

As lag that one gets working with a heavy data remotely reminded moving back from SSD to slow HDD, where you needed to wait some time to see the result on the screen.

It was only half a second every time, but felt ultra annoying.

I guess, I am experienced open-source developer

(https://github.com/albumentations-team/Albumentations)

15k stars, 5 million monthly downloads

----

It may happen that Cursor in the agentic mode writes code slower than I am. But!

It frees me from being in the IDE 100% of the time.

There is infinite list of educational videos, blog posts, scientific papers, hacker news, twitter, reddit that I want to read and going through them, while agents do their job is ultra convenient.

=> If I think about "productivity" in a broader way => with Cursor + agents, my overall productivity moved to a whole another level.

Not directly related but still.

A couple weeks ago I:

1. forked repository of the Albumentations library (15k stars, 5 Million monthly downloads, MIT license) and called it AlbumentationsX

2. changed the license of the fork to the Dual (restrictive AGPL to be used for free and permissive commercial if you buy license) => it is unlikely that it is legal to use it in your project as noone wants AGPL project in the list of dependencies

3. Arhived albumentations repo ---

People use albumentationsx (I can see pypi download stats + telemetry), but zero licenses were bought.

----

Coming back to the original post - what surprises me that they forked, but did not try to rewrite with LLMs. LLMs may not be that good writing complex functionality, but in rewriting something they are quite good.

In this sense, all open-source licensing is not as useful anymore as rewriting the code so that there is no way to proof the plagiarism is the new reality.

---

Looks like the future is: - closed source code - open source developed by companies that want to use it for lead generation

[1] Open source image augmentations library Albumentations has passed 15k stars on GitHub and reached 94M+ total downloads (https://clickpy.clickhouse.com/dashboard/albumentations).

[2] Albumentations is no longer maintained.

What does this mean?

The library has been forked into a new project: AlbumentationsX. The corresponding Python package is: `albumentationsx`

It is a drop-in replacement for the original albumentations:

```bash pip uninstall albumentations pip install albumentationsx ```

Everything else stays the same:

```python import albumentations as A

transform = A.Compose([...]) ```

-----

Why?

The current situation

Over the past year, I’ve been the primary (and mostly only) maintainer of Albumentations. The original team has moved on, but usage and support needs have only increased: - Weekly issues, questions, and feature requests - Major companies using it in production - Sponsorships cover only 2.5% of my living expenses and 0.39% (0.0039) of what I was making as a full time employee

Companies generally don’t donate — but they do purchase licenses. The MIT model didn’t make long-term work sustainable.

-----

AlbumentationsX uses a dual license: AGPL / Commercial

- Using AGPL or a similarly restrictive open-source license? You can continue using AlbumentationsX under AGPL. - For companies, three paths: [1] Comply with AGPL by open-sourcing your full codebase [2] Purchase a commercial license → https://albumentations.ai/pricing [3] Keep using albumentations (MIT) — but with no updates or bug fixes

Quick comparison albumentations (original): - License: MIT - Actively maintained: No - New features: No - Bug fixes: No

albumentationsx: - License: AGPL / Commercial - Actively maintained: Yes - New features: Yes - Bug fixes: Yes - Code changes required: None

-----

What is AGPL?

AGPL extends the GPL to network services. If you use AGPL software in a hosted service or SaaS, you must:

- Disclose your full source code to users - Apply AGPL to your entire codebase

This applies even if users only interact with it via an API

If your project uses MIT, Apache, or BSD — you cannot use AlbumentationsX under AGPL. You’ll need a commercial license.

-----

Why this change makes sense?

Projects like Ultralytics YOLO have successfully adopted dual licensing to: - Fund full-time development - Deliver new features faster - Ensure long-term maintenance and support

My goal is the same: to work on AlbumentationsX full-time and keep it the best augmentation library available.

This model won’t suit everyone — but it enables sustainability, which the MIT model could not.

[dead] 2 years ago

I am the guy behind Albumentations library. Feel free to ask any, including provocative questions. Will be happy to answer.

[dead] 2 years ago

Exploring Time and Frequency masking augmentations for EEG spectrograms.

Do not do things that make you uncomfortable without good reason.

If you feel that interview process is not going as you expect it to go, you may just say:

" I understand that you have an established interview process that works for you, but it is not exactly as I imagined it.

Extensive interview process is a big time and energy investment. Before going this path I would like talk to the CEO to see if there is a match between what I could bring to the company and what company is looking for.

If it is not possible to have such a conversation, this is fine with me, I definitely do not want to push or convince you to do something you are not comfortable with.

But going throght the whole inteview process and realizing that there is no match only at the end is not really my flow. "

The drawback of this approach is that if they will reject your proposal for the meeting you will need to walk your walk.

The paper uses BMI to measure overweight/obese, which is an approximate metric as it does not distinguish fat from muscles.

Based on my BMI, I am overweight. Based on my body fat percentage (measured by DEXA scan), I am athletic.

Conclusions from BMI are not exactly "Garbage in - garbage out," but I suspect that if the body fat percentage were used by scientists, conclusions would be more accurate and insightful.

I am one of the creators and maintainers of https://albumentations.ai/.

- 12800+ stars

- 1M downloads last month, 37k per day

- Paper about the project: 1500+ citations

- Used in 18k other repositories and 317 packages.

=> People use it.

But!

- 365 open issues

- 25 pull request

that hang for years

Only one sponsor.

And this is fine. People use the result of our work, but we do not feel that we are entitled / deserve / [some other vomit words] of more support.

In the beginning, we decided that we would do it:

- only for fan

- when and how we want it

- if some user is unhappy with our commitment or decisions

=> feel free to fork.

But!

We do enjoy when people thank us, create pull requests (we do review and merge them, although it could take time), or create feature requests or bug reports.

I can see open source as a great pet project that you do for fun and to improve your skills, but unless it is an OpenCore business or another setup where maintainers are financially compensated, all whiners and complainers can go and fuck themselves.

I would not recommend maintainers of the open source software even notice them.

If working on OSS is not fun - do not do it. Life is too short for unnecessary stress.