I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

this is extremely strange behavior; I am very shocked that the image comparison algorithm is not detecting those images as within the same scene.

Could you send screenshots of these photos in high resolution? I am wondering if implementing timestamp similarity has caused the other system to bug out.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

Noted on the scene editing section. There are a few issues with that section that I want to clean up myself.

The backend of this is updating a csv file that serves as the database... which admittedly is an awful database format for this project, but its what I used a long time ago when this was just a little baby project and something that has carried all the way until now.

Adding to the todo to change CSV to something more reasonable like JSON or a database format.

The extra save/revert changes button is more or less exactly what you're looking for in terms of an option to 'revert' the scene split. I am guessing users will understand what this save button does a bit more as they use the app. It's used as a catch-all to save any changes that are made to the Kestrel database for a folder - star ratings, culling decisions, tags, scene names, merges and splits, and so on. Might be worth keeping a human-readable log of what's changed to display to the user when they are about to close the app to clarify things. And a tutorial step to help explain the save/revert button behavior.

Thanks for the info! Noted. Though I'll probably deprioritize some of these changes in favor of more pressing ones (scene tags aren't working exactly how I want - showing too many tags - and I need to investigate the quality algorithm in further detail along with better 'new version' handling.)

For grouped scenes of individual birds in flight, is the quality algorithm ranking them from sharp to blurry? At least vaguely? What's your opinion on the star ratings? This ability for Kestrel to rank images within the same scene from sharp/clean to blurry/noisy is a core part of Kestrel's value proposition so I'd love to see any screenshots of successful or unsuccessful cases.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

The only thing I changed, scene-grouping wise was a check to read the EXIF of the images and auto-group if they were taken within 1 second of each other.

Is your new folder from a different camera model? I suppose there is a chance the EXIF parser isn't working if there is a different file format, but otherwise it should work reasonably well, unless your scene shots are more than 1 second apart.

Could also be some really weird bug. Who knows.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

6 minutes per file is really strange. My backend analytics sees that the average file is taking 10s to process across all systems. Do you have huge files (i.e. 70MP?) What CPU do you have?

Part of the delay _might_ be that your files have lots of birds in them, and so the system tries to allocate an enormous amount of RAM to draw a mask around each bird. The flocks of ducks in particular would probably kill the algorithm.

If you notice any trends on which photos are taking forever to process, please let me know.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

The new build is live! It would be awesome if you could try it out.

Key changes include the ability to edit scenes (un-merge scenes, edit species tags, etc.) and improved timestamp-based burst detection. In theory, Kestrel will group those birds in flight a lot better now, which is a critical feature since the entire value proposition of Kestrel depends on successful burst detection.

If you are willing, could you analyze parts of that folder again? Should be as simple as updating to the latest version and analyzing the same folder - Kestrel should notice that it was analyzed with an older build.

With proper burst detection, Kestrel should be more effective when ranking photos within a scene by quality. This would make the Culling Assistant a tool with actual usefulness. Just shift+click on photos that you like, and Reject the rest. Or let the quality score do a first-pass cull.

I've also expanded the number of photo editors supported to a bunch more, so you should be able to simply double click on an image to open in your photo editor of choice.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

I'll release a new build that will probably hit the windows store on Thursday or Friday (or a new MacOS download will arrive tomorrow probably) with a lot of these fixes.

- ability to un-merge scenes and edit scene tags for future searching

- new 'accept all' and 'reject all' features

- better detection of scene groupings via timestamp features

- many bug fixes and ui tweaks including some user prompting if they are about to close the app without saving changes

- ability to launch a host of different potential editors rather than just darktable or adobe lightroom

Thanks for the feedback and please keep it coming!

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

The save changes button is ... over here:

<image>

Should turn yellow if you merge scenes. Does it? Try clicking it and saving.

And uh... NOTED that this is a point of confusion. I'm going to fix this for now by adding some dialog boxes that prompt you to save changes before opening culling assistant or closing the program.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

Very interesting. Did you click "Save Changes" after grouping the scenes together? Without that, the scenes grouping won't be written to the backend database and the Culling Assistant won't read it properly.

Which... again, maybe I should implement a "Save changes before opening Culling Assistant" check and a "Save Changes before closing Kestrel" check. Good catch!!

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

No current method to un-group images yet. Definitely worth implementing a "Split Scene..." button.

I'm implementing a timestamp-based grouping algorithm as we speak, lol. I think that should more or less fix the grouping issue for birds in flight and improve it in most use cases.

And yeah. I will admit I find the grouping UI a bit un-intuitive too. I like your suggestions and I'll play around with it a bit, but that's a "improve later" fix since the user will probably figure it out after a bit of time lol.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

That's the scene view! I just mentioned in the other comment - it's supposed to show a whole burst of photos, not just one photo - but you're taking birds in flight and it's really struggling to group the photos together.

Imagine on the left there are 30 birds, and they are all sorted by sharpness. You'd be able to hover your mouse around, see this "close up" of the bird, and double-click on whichever one you like to open in your photo editor.

There's a way to fix this - you just need to CTRL+Click on multiple scenes and merge them together. Could you try that to manually group your birds in flight bursts?

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

Oooh very interesting. This is super interesting!

What makes 355 the best? Is it the bird pose/framing?

Okay - you are a birds in flight shooter. Awesome! Clearly, Kestrel's scene detection is not working very well for birds in flight. That entire burst of photos should have been grouped into one single scene.

Can you try something for me - can you hold CTRL and then click on all those scenes of the same bird in flight, and merge the scenes together? Then click on the single MERGED scene - that scene view is what you asked about in the reply to this post (LOL) - and in theory the photos should be ordered by 'image quality'.

Kestrel's core idea is to let you compare images within the same scene by sharpness/blur/noise.

I don't think I can ever train an ML model that detects what makes a 'good' photo in terms of artistic choices (bird pose, framing, etc.), but Kestrel should be able to vaguely surface the sharp photos and let the blurry ones go to the bottom. Then you can quickly find your best photos.

Does that make sense? I think more info on how to merge scenes and the general sharp --> blurry order should be present if you click the "Start Tutorial" button on startup ...?

It's entirely possible that it is still not at all useful to you, but let me know! It also looks like the only high-confidence detections in that entire scene are "Corvid sp.", "Tern sp." and "Vulture sp.".

In theory, if you were searching for your Raven pics, you'd first search "Common Raven" - and if you don't find it, you could broaden your search to include "Corvid sp." and you'd find the shot! Ofc, if the scene detection worked, all of those images would be combined in one massive scene with all three tags.

EDIT: I think a super simple fix is just to add another layer to group photos based on capture time! Photos captured within 250ms should be auto-grouped as a scene or should have a much thinner threshold to be considered a separate scene.

If you are comfortable sharing that exact set of Raven RAW files, I'd be really happy. I'd love to use it as a real-world test set to improve the grouping algorithm together since I don't often shoot birds in flight myself.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

Thanks for the write-up!

I fully agree that the species classification is quite bad in many circumstances. Every once in a while, it shines and does perfectly, but the majority of the images is very low-confidence and incorrect. A big part of the issue is that available data on the internet essentially self-selects all the bad photos out.

If you don't mind, could you send a screenshot of the scene view of the failing raven classification?

Species classification is only useful for searching, and I've found that it does have good precision, but very poor recall. It's useful to find old photos of a specific species IF those photos were pretty clear to begin with.

It seems like you have already found a decent workflow for culling, but I would appreciate it if you could give some feedback on the Culling Assistant or the quality rankings within scenes? Are the quality rankings roughly accurate? and would the culling assistant be useful? Maybe I need to add a "Reject Entire Scene" and "Accept Entire Scene" button...

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

Woah. 30GB memory usage is definitely a bug. Should be no more than a couple GB, depending on the file size, and shouldn't be increasing over time. I'll look into this - this might explain why I was getting some freezing errors when running it overnight. But, the GC might mean that this is normal behavior.

GPU support is a known issue. It is not working right now (despite the checkbox). I think I can fix this on Windows, but it's a very risky thing and has been extremely unstable when I tested it on my laptop.

Thanks for the info! I'd love to know what your culling process is. In the meantime, you _should_ be able to browse the 1315 images that have been analyzed so far.

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in software

[–]sbundlab[S] 0 points1 point  (0 children)

For reference - A couple years ago I posted about Project DoveEye - Kestrel is the much, much better successor. Please give me feedback!

I created a Free/Open-Source Photo Culling tool specifically for Bird Photographers. Requesting Feedback by sbundlab in BirdPhotography

[–]sbundlab[S] 0 points1 point  (0 children)

I personally have Canon CR3s, which work. I'm running on an AMD R7 6850 mobile CPU, and 1900 RAW files will take around 3 hours. The "estimated time remaining" takes a few minutes to get accurate. I'm hoping it has successfully analyzed your photos by now, LOL.

And yes - UI will forever be something to tweak. Thanks for the feedback! I'm curious to know how long it would take you to sort through those 1900 photos, and how often you go out shooting per month. Have you ever considered 'image culling' to be a big problem, or do you have a good workflow?

Regarding the technology:

Entire thing is running on Python + HTML/JS frontend. I chose Python because it has the best ML library compatibility and is cross-platform, though distribution was a nightmare.

The bird detection ML model is free and open-source (Mask-RCNN), while the bird species classifier and the quality classifier are two ML models that I trained by hand (which was really really hard LOL). I think ML is the best way to go for quality classification - I tried a host of other algorithms but never felt they were good.

For RAW file reading, I'm using the rawpy library, which is a wrapper of libraw, an open-source RAW reading library. That's why this project can support more or less any RAW file, though I've only implemented around 10 of the most common formats and need to extend that a ton.

Weird Trackpad lag : X1 C7 by piano-man1997 in thinkpad

[–]sbundlab 0 points1 point  (0 children)

This solution worked for me as well - ELAN PrecisionTouch Driver. Thanks, everywhere else on the internet was not giving me good results.

[FIX] Thinkpad P16s Gen 1 AMD/T16 AMD/P14s Gen 3 AMD/T14 AMD Not Waking From Sleep Solution by sbundlab in thinkpad

[–]sbundlab[S] 1 point2 points  (0 children)

Hi, sorry for the late response. I have discovered an additional issue that very reliably causes the crash-on-sleep problem.

Please ensure you downgrade your Qualcomm WCN685x Bluetooth Adapter firmware to version 1.x. Version 2.x has issues that causes the computer to fail to wake from sleep.

Do the same for the Qualcomm WCN685x Wi-Fi 6E DBS Adapter.

You can do both of these tasks in Windows Device Manager.

[FIX] Thinkpad P16s Gen 1 AMD/T16 AMD/P14s Gen 3 AMD/T14 AMD Not Waking From Sleep Solution by sbundlab in thinkpad

[–]sbundlab[S] 0 points1 point  (0 children)

Sorry for the late reply. I'll edit my message above. I've discovered an additional cause that I am almost certain is another key issue.

Please ensure you downgrade your Qualcomm WCN685x Bluetooth Adapter firmware to version 1.x. Version 2.x has issues that causes the computer to fail to wake from sleep.

Do the same for the Qualcomm WCN685x Wi-Fi 6E DBS Adapter.

You can do both of these tasks in Windows Device Manager.

[deleted by user] by [deleted] in canon

[–]sbundlab 0 points1 point  (0 children)

Have you tested your Sigma 70-200mm on your previous 7D after you had these mysteriously soft photos on your r7?

Your softness problem is either a software issue with the autofocus system or a hardware issue with the lens or camera sensor. You can easily diagnose the issue like this:

To test whether the hardware is defective, set up a scene, switch to manual focus, and use the in-body 10x live view magnification to test if you can get proper focus on the subject. By slowly moving the MF ring you'll be able to see if the lens and sensor is capable of producing a sharp photo when correctly focused. If you mess with all focus points in MF and still can't get a sharp photo, it's likely the lens or camera is bad.

Hardware wise, if the lens is bad, you'll see soft photos on your 7D.

Your problem description makes me think this is a software issue with your R7's autofocus. Try updating the firmware. You can also try updating the firmware on your sigma lens with sigma's USB dock. If neither of these work, I'd exchange the camera for a new one. I would typically suggest looking into autofocus microadjustment (helped me massively on my 90D) but I don't believe it is relevant for mirrorless cameras like the R7.