Sign in

Thomas Lefebvre

@tlbvr.com
115 followers 60 following 176 posts

Product/ML Eng @unsplash. I write things on tlbvr.com Montreal 🇨🇦

PostsRepliesMedia
Thomas Lefebvre @tlbvr.com · 17/09/2026
I haven't written in a while, but I had good reason. tlbvr.com/blog/things-...
tlbvr.com
Things I did and what's next | Thomas Lefebvre
An unusual post about what I've done lately and where I'm headed next.
020
Reposted by Thomas Lefebvre
Oliver Ash @oliverjash.me · 28/07/2026
I'm looking for a new role as a lead frontend/TypeScript engineer. 👋 13 years of experience and I formerly led the web team at Unsplash. My CV: drive.google.com/file/d/1Hp7w... If you know of any roles, please reach out. I'd really appreciate if you could share. Thank you!
23122
Thomas Lefebvre @tlbvr.com · 30/05/2026
Implemented something to track pieces and give them stable ids. This will allow me to understand more precise movement across the board, e.g knowing if a piece got lifted and put back on the same square.
000
Thomas Lefebvre @tlbvr.com · 16/05/2026
Transposing the board into a 2D grid for visualization. I'm going to need some smoothing/tracking because at soon as the model loses after some jitter, it forgets something was there before.
000
Thomas Lefebvre @tlbvr.com · 25/04/2026
It's now able to map detections back to squares in the board grid space and flag them as "occupied".
100
Thomas Lefebvre @tlbvr.com · 11/04/2026
Model needs work with classification but the video pipeline is now much smoother at 30fps.
100
Thomas Lefebvre @tlbvr.com · 06/04/2026
😬 www.youtube.com/watch?v=RIu4... I know..controversial.
youtube.com
Harry Potter and the Philosopher's Stone | Official Teaser | HBO Max
YouTube video by Harry Potter
120
Thomas Lefebvre @tlbvr.com · 06/04/2026
Never read the book but I got emotional during the movie.
101
Thomas Lefebvre @tlbvr.com · 19/03/2026
Please use major releases when introducing breaking changes in APIs 😮‍💨 github.com/beartype/plu...
github.com
Release v2.7.0 · beartype/plum
Note: All imports should now go through plum directly! That is, not plum.signature.Signature, but plum.Signature. Please do open an issue if this release breaks something that shouldn't break. Chan...
000
Thomas Lefebvre @tlbvr.com · 06/03/2026
My friday night prompt to codex: "i refactored and now it's broken. help"
010
Thomas Lefebvre @tlbvr.com · 06/03/2026
Making progress..slowly but surely. The model needs more training but here's a friday evening end to end pipeline.
000
Thomas Lefebvre @tlbvr.com · 01/03/2026
I may have an acute overfitting case here...
000
Thomas Lefebvre @tlbvr.com · 28/02/2026
Decided to fine-tune YOLO. I'm annotating data...how's your saturday?
000
Thomas Lefebvre @tlbvr.com · 16/02/2026
I find them great to reason with to find solutions to problems you don't already know how to solve, or for extensive boilerplate/grunt work you'd want to get done. If you already know what to do and it's relatively fast to do so, I find it takes more time to write it all up to an LLM.
010
Thomas Lefebvre @tlbvr.com · 14/02/2026
I'm trying Molmo and this is impressive
000
Thomas Lefebvre @tlbvr.com · 13/02/2026
Overwriting the overridable overridden instructions.
000
Thomas Lefebvre @tlbvr.com · 12/02/2026
Some progress...
200
Thomas Lefebvre @tlbvr.com · 12/02/2026
I haven't gotten good result so far trying to detect pieces on squares using more traditional computer vision so I'm trying out DINO.
101
Thomas Lefebvre @tlbvr.com · 12/02/2026
Just wrapped up CS231N. Definitely worth the time investment if you're willing to do it. Took me about 4 months to complete at 1 lecture/week. www.youtube.com/playlist?lis...
youtube.com
Stanford CS231N Deep Learning for Computer Vision I 2025 - YouTube
Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving car...
000
Thomas Lefebvre @tlbvr.com · 11/02/2026
We just spend many hours uploading vectors to S3 vectors bucket..only to realize the keys weren't unique and each batch did overwrite the previous one. Ended up with a bucket with 500 vectors at the end of the day 😬
000
Thomas Lefebvre @tlbvr.com · 06/02/2026
Winter is still around and I get cozy with ONNX. Recently, I had to change a pre-trained model output and wrote a bit about it. My future self will thank me. tlbvr.com/blog/onnx-gr...
tlbvr.com
Embed custom operations in ONNX graphs | Thomas Lefebvre
Learn how to update an ONNX graph and add custom operations to create a self-contained model.
000
Thomas Lefebvre @tlbvr.com · 26/01/2026
We just named one of our service after this magical object. For all the Zelda fans out there.
000
Thomas Lefebvre @tlbvr.com · 20/01/2026
is Macron...hungover?
110
Thomas Lefebvre @tlbvr.com · 19/01/2026
Finally got it working on live camera. It's still supper laggy when I draw onto the frame but the most important part is the homography works in various angles. Still need to test how it behaves in various brightness settings.
010
Thomas Lefebvre @tlbvr.com · 18/01/2026
I applied the same heuristics to another board where I printed the actual aruco markers. Works well! Defining the playable squares by hand is a bit tedious, but I'm sure we can streamline this.
210
Thomas Lefebvre @tlbvr.com · 08/01/2026
And it's live! tlbvr.com/blog/categor...
tlbvr.com
Categorizing illustrations using deep learning: Part 2 | Thomas Lefebvre
Convincing Unsplash to train a custom neural network was one thing, next is to deploy it in production.
000
Thomas Lefebvre @tlbvr.com · 02/01/2026
I'm finally writing the second part. Never too late.
Screenshot with a sneak peek of the second part of the blog series.
011
Thomas Lefebvre @tlbvr.com · 31/12/2025
Your phone listens.
030
Thomas Lefebvre @tlbvr.com · 30/12/2025
Woaw. I'm finding my TS roots again (this is python)
Functional python snippet
100
Thomas Lefebvre @tlbvr.com · 29/12/2025
On to detecting pieces — I'm not sure yet how I'm going to avoid false positive because of light/shadows.
100
Thomas Lefebvre @tlbvr.com · 24/12/2025
Building a way to map game boards and make it resilient to jitter/skewing. Goal is to feed video frames to this algorithm and keep the mapping stable.
Original board with squares mapped out.Skewed board 1 retaining original mappingSkewed board 2 retaining original mapping
100
Thomas Lefebvre @tlbvr.com · 03/10/2025
Using k-fold cross-validation has proven useful to find label issues in our dataset. I write a little bit about it here tlbvr.com/blog/k-fold-...
tlbvr.com
Detect label issues in your vision dataset | Thomas Lefebvre
Leverage cross-validation and identify potential issues in your labeled data for your computer vision model
000
Thomas Lefebvre @tlbvr.com · 23/09/2025
I wish python `match` would be an expression. There I said it.
000
Thomas Lefebvre @tlbvr.com · 21/09/2025
Just started watching Stanford's computer vision lectures from this year www.youtube.com/watch?v=2fq9... see you on the order side.
youtube.com
000
Thomas Lefebvre @tlbvr.com · 10/09/2025
Does "reporting junk" do anything on iMessage? My phone number probably hung out in dark places and now i'm flooded with spam. Keep reporting but I don't feel like it does anything.
010
Thomas Lefebvre @tlbvr.com · 02/09/2025
Lowering the loss of your model feels like a game. You initially take bets and get rewarded (maybe).
000
Thomas Lefebvre @tlbvr.com · 26/08/2025
It's that time of year again when I can stick up my feet close to my gaming computer and it keeps them warm.
020
Thomas Lefebvre @tlbvr.com · 26/08/2025
Similar to: why do I always see my queen blunders after I made the move.
010
Thomas Lefebvre @tlbvr.com · 21/08/2025
Going from 30s latency to ~400ms in model invocations by dropping the mlflow provided scoring server by a custom one. I don't understand github.com/mlflow/mlflo...
github.com
Latency for served model REST APIs · Issue #7948 · mlflow/mlflow
Willingness to contribute No. I cannot contribute this feature at this time. Proposal Summary For certain requirements, the latency of the model REST APIs have to be very low. We have observed that...
000
Thomas Lefebvre @tlbvr.com · 12/08/2025
Converting pip groups from pyproject to requirements.txt is sometimes necessary to interop with tooling that don't have pip>=25 or some automation picking up on requirements.txt. I've been using a script provided by the python docs that does just that. packaging.python.org/en/latest/sp...
packaging.python.org
Dependency Groups - Python Packaging User Guide
020
Thomas Lefebvre @tlbvr.com · 06/08/2025
AI-powered IDEs coming out left and right...as often as...JS frameworks?
010
Thomas Lefebvre @tlbvr.com · 04/08/2025
Coming from a serious Typescript and other typed languages background, I was a bit worried working in python but I'm pleasantly surprised about the ecosystem revolving around types. Finding separate type stubs reminds me of the early TS days where most libraries required custom .d.ts files.
000
Thomas Lefebvre @tlbvr.com · 29/07/2025
Since each model has only seen a portion of the data, we can assume it will give "honest" predictions. We can gather all of these predictions and give that to cleanlab which will analyze the probabilities and output a report of potentially mislabeled images. docs.cleanlab.ai/stable/tutor...
docs.cleanlab.ai
Detecting Issues in an Image Dataset with Datalab
This quickstart tutorial demonstrates how to find issues in image classification data. Here we use the Fashion-MNIST dataset (60,000 images of fashion products from 10 categories), but you can repl...
000
Thomas Lefebvre @tlbvr.com · 29/07/2025
I'm setting up K-fold cross validation producing K models, each trained on a subset of the training set and predicting on a validation set. Appending those predictions together, we ensure that the whole dataset has been seen but equally split amongst the models.
screenshot showing the train process of various models
100
Thomas Lefebvre @tlbvr.com · 29/07/2025
Because I want to spot issues in my training data, I can't use a model trained on that data to create predictions because it'll be too confident since it's seen the data before.
100
Thomas Lefebvre @tlbvr.com · 29/07/2025
I'm looking into ways of spotting labels issues in my training data. Cleanlab github.com/cleanlab/cle... has a feature where you feed predictions and it'll tell you which image may have a bad label based on the confidence of the predictions.
github.com
GitHub - cleanlab/cleanlab: Cleanlab's open-source library is the standard data-centric AI package for data quality and machine learning with messy, real-world data and labels.
Cleanlab's open-source library is the standard data-centric AI package for data quality and machine learning with messy, real-world data and labels. - cleanlab/cleanlab
100
Thomas Lefebvre @tlbvr.com · 27/07/2025
Victory!
Screenshot showing successful training jobs
000
Thomas Lefebvre @tlbvr.com · 25/07/2025
Friday night. Will this job pass before I pass out?
110
Thomas Lefebvre @tlbvr.com · 24/07/2025
I spawned two machines. Someone stops me.
000
Thomas Lefebvre @tlbvr.com · 24/07/2025
It did not. Back to the drawing board.
100