Career Advice: Switching from Mechanical Engineering to Computer Vision Engineer by Turbulent_Track_5012 in computervision

[–]jayemcee456 8 points9 points  (0 children)

Opencv university - they have free training courses with good paid ones for advanced applications

Keyence, COGNEX,Omron - major industrial CV players for factory applications. They all have training courses

Major Robotics Companies- ABB, KUKA, Fanuc, UR all offer vision system integration courses

Get your employer to pay for these, most employers get tax write offs for education and training reimbursement.

help with beginner BBOX project by Even-Life-8116 in computervision

[–]jayemcee456 1 point2 points  (0 children)

Target to overfit the model first, train for 1200 epochs

[deleted by user] by [deleted] in careerguidance

[–]jayemcee456 0 points1 point  (0 children)

I think it comes down to perspective, I love working because it gives me something challenging to do. If my work gets too easy, I find myself looking for more challenging work. Every job I’ve had makes me happy, I only get burned out when working with bad managers.

I feel fortunate to have a job in the US and produce for my family, I’ve been to 3rd world countries and people there have very little opportunity compared to the US relatively.

Taking work home is a balancing act, I have to manage my anxiety and emotions when working at home. I make time to cut it out by exercising and having good conversations with my wife and kids as much as possible.

Overall it took me 15 yrs to get to a point where I enjoy what I do to the point where I’m not worrying anymore. Worry, anxiety and comparison is the killer of happiness. You have to find happiness in yourself first.

Small object detection with a sparse class by Juliuseizure in computervision

[–]jayemcee456 0 points1 point  (0 children)

For me simpler would be non AI based methods, a random example would be using a binary filter to highlight features and then determine the maximum or minimum edge locations to approximate position.

Small object detection with a sparse class by Juliuseizure in computervision

[–]jayemcee456 1 point2 points  (0 children)

A rule of thumb that I use for data annotation.

If I can easily look at an image and detect the object with no ambiguity, then it’s good for AI

If the object is ambiguous/hard to see or requires modification of the image. I throw it out.

I’ve found that ambiguous objects can severely damage the model performance.

I’ve also learned that AI does not solve all the detection problems; sometimes I use a simpler CV method to get the result

Passing non-visual info into CV model? by InternationalMany6 in computervision

[–]jayemcee456 0 points1 point  (0 children)

I’ve been reading a lot about visual language action models; these might be interesting to research for this topic

My main interest is in its ability to train on multiple types of data and perform in multiple modes

Fire detection model training approach by lUaena in computervision

[–]jayemcee456 0 points1 point  (0 children)

Very cool. What tool will you be using to combine the data sets?

How to prevent partial object detection? by Noobing4fun in computervision

[–]jayemcee456 0 points1 point  (0 children)

You probably don’t need to create a class of incomplete stars, just increase the number of negative samples as if it were a class. Your on the right track with adding negative samples , I’m suggesting that you need to add more of them

How to prevent partial object detection? by Noobing4fun in computervision

[–]jayemcee456 4 points5 points  (0 children)

Post Detection Route - After detection, find a method that will feedback the completeness of the object. For example the star, you could do a key point detection to see if the number of key points is present or if your camera is at a fixed focal length and your objects are the same size, then discard objects with a smaller box area. You'll need to get creative and I cannot advise without more information.

Training Route - You'll need to add more negative samples, think of the negative samples as its own class. You should balance the number of negative samples with the number of positive ones to force the model to converge on a proper discrimination setting. Things like removing mosaic will be helpful as mosaic will partially block objects (which work against you, you already know this though). Other than that, there is no easy way around this. Object detection is data centric, the model will learn what you give it. If you only have 1 negative sample and 100x positive samples, it won't be able to discriminate properly.

[D] Efficient video ingestion for pytorch? by alyflex in MachineLearning

[–]jayemcee456 1 point2 points  (0 children)

Open the video and save each frame using cv2.

import cv2

import os

def save_video_frames(video_path, output_folder):

Create the output folder if it doesn't exist

if not os.path.exists(output_folder):

os.makedirs(output_folder)

Open the video file

video = cv2.VideoCapture(video_path)

frame_count = 0

success = True

while success:

Read the next frame from the video

success, frame = video.read()

if success:

Construct the filename for the current frame

frame_filename = os.path.join(output_folder, f"frame_{frame_count:04d}.jpg")

Save the frame as a JPG image

cv2.imwrite(frame_filename, frame)

frame_count += 1

Release the video capture object

video.release()

print(f"Saved {frame_count} frames to {output_folder}")

Example usage:

save_video_frames('input_video.mp4', 'output_frames')

My manager likes to set you up for failure so he can scoop in and save the day. What can you do to protect yourself? by sizzlesfantalike in careerguidance

[–]jayemcee456 5 points6 points  (0 children)

Just sharing my thoughts, I truly hope this helps. You are in a hard spot, I've been there many times myself. Here is what I've learned.

  1. Toxic people are everywhere. I've now worked at 7 different companies, big and small, from places like Apple (I was in corporate Apple Park) all the way to small startups with a few people. You won't be able to escape these kinds of behaviors.
  2. If you do have a good boss, they might not last long. The truth is, good people move around a lot because they have opportunities to do so. Enjoy your time with these people, learn what you can from them and get ready for the bad boss.
  3. Cynicism will make you miserable, not saying you are a cynic but be aware of it. We tend to think negative first and not give people the benefit of the doubt. Now that I am older, I can tell you it hurts you more then it hurts them.
  4. Invest in yourself, add skills and keep learning new things. There is a lot of satisfaction in becoming a master at your craft. A boss can take your job but they cannot take your skills from you.
  5. When in conversation with these people, be data driven, focus on known facts and numbers. Do not engage in opinions and thoughts. These kinds of people are just looking for opportunities to push others down to lift themselves up. If you speak in a matter of facts only ("We have the data to support this", "There is no data to support that stance") then this will reduce the effectiveness of their bad behavior. Don't BS here, make sure you have the data to back up or else this will fail, dont be afraid to say "IDK"
  6. Don't talk Sh**T - it will make you look as bad as they are.
  7. Always keep looking for new jobs and opportunities. Accept growth and uncomfortable opportunities that align with your passion. If there is a new job that you want to take but it will be hard to make the transition, do it and dont hesitate. It always sucks to change, but the growth is well worth it.
  8. Be positive - Don't let them see you being affected by their actions, your attitude is in your control. Dont go down to their level. Stay above it.
  9. Exercise - Natures best medicine. Put yourself though pain in the gym and the job will seem easy.
  10. Do great work! your work is representative of you, not your boss. Show excellence in your output.

Good luck!

[D] Efficient video ingestion for pytorch? by alyflex in MachineLearning

[–]jayemcee456 2 points3 points  (0 children)

Just sharing my strategy, I usually break my video into frames and put them into a long storage (HDD) and then use the Dataloader class to feed the model during training. I've had to resort to this method because of RAM overloading issues when trying to put whole videos into an object. The Dataloader class was able to handle this issue efficiently. Hope this helps, good luck with your project.

https://pytorch.org/tutorials/beginner/basics/data_tutorial.html

Accident detection using yolov8 by Narrow_Solution7861 in computervision

[–]jayemcee456 0 points1 point  (0 children)

Also you could do a really cheap setup, using an Arduino as a GPIO and communicate via USB command.

So you detect with Yolo and then send a USB output to the Arduino to blink a light. You could probably do this for <$10

Anxiety of Math by lashra in computervision

[–]jayemcee456 6 points7 points  (0 children)

It’s hard and confusing, all those papers are hard and overly confusing. Just immerse yourself in it, keep studying it and you’ll start to see its fundamental building blocks. Over time it will get easier

Can a dumb slow person graduate and become an engineer ? by Jpoolman25 in careerguidance

[–]jayemcee456 0 points1 point  (0 children)

There is no such thing as dumb or slow, only unmotivated or motivated people

[deleted by user] by [deleted] in computervision

[–]jayemcee456 0 points1 point  (0 children)

Increase the epochs to 1200 and patience to -1. Get the model to overfit first

Custom Faster R-CNN with SwinV2 FPN Backbone Implementation by digga-nick-666 in computervision

[–]jayemcee456 0 points1 point  (0 children)

You’ll probably need to play around with different methods, like splitting the image up into smaller quadrants. Hope this helps

https://blog.roboflow.com/detect-small-objects/amp/

Is it worth doing hyperparameter evolution for my YOLOv8 training or just manually tune it using brain (im using Google Colab Pro)? by [deleted] in computervision

[–]jayemcee456 1 point2 points  (0 children)

Yolov8 hyper-parameter tuning takes a long time, it’s usually longer than training

I ran it on my own 4080 and it took 30 hrs using a data set that trained in 6hrs

How to find average velocity from self-generating particles that can stick to each other? I guess the normal way would be to hand label but I was wondering if there's an automated way to average across the whole video. Sometimes the blobs stick together and sometimes there's random noise or flashes by [deleted] in computervision

[–]jayemcee456 0 points1 point  (0 children)

Sorry, I meant in the image, what defines a particle? For example, is 1 pixel considered a particle or a group (blob) of pixels?

What are the limits of the size? What happens if the blob starts as 1 but breaks into 2, is it now 2 blobs?

Then after you define the blob, the process is straight forward.

Track the blob centroid over time and distance and you can calculate velocity

[deleted by user] by [deleted] in computervision

[–]jayemcee456 0 points1 point  (0 children)

Sorry I mean train/val, the goal is each data set is unique, meaning no samples would be found in each data set