Closed duxuan11 closed 1 hour ago
Personally, I suggest you use two methods to remove the noise contours:
Thank you for your advice, I was wondering if there was a way to outline the target edges more accurately (morphological manipulation is necessary) and how to filter out the blurred pixels. Fine-tuning my data set will make the results more accurate?
Sure. If you have similar data used for training, model will definitely get more familiar with those cases and perform better there.
I'm sorry to bother you, I understand my needs, I need a high-precision segmentation algorithm, so I want to convert the cutout algorithm to a segmentation algorithm, alpha can only take 0 or 1. So, do you have any good suggestions?
How did you use BiRefNet to obtain your results above? If you directly use it, there might be some gaps between the training and your data, such as resolution, data domain, object class, etc. So, I suggest you do some fine-tuning (for <200 samples) or training from scratch (if you have >200 samples) according to the settings of your original (cell?) data.
I directly used it to obtain the cell segmentation mask, and found a few improvement on the edge by reducing blur radius(This parameter is used to perform blur fusion to estimate foreground and background images). I think it will be useful to train the model on my dataset and adjust the value of predicted_alpha_array during inference.
For the first image I used birefnet to get the good result, now I want to get the edge of the mask, but I find that cv2.findContours does not get good results. How to find the edge better?
contours, _ = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)