Ma-Dan / YOLOv3-CoreML

YOLOv3 for iOS implemented using CoreML.
MIT License
171 stars 46 forks source link

scaleFit instead of scaleFill #11

Open pannaf opened 5 years ago

pannaf commented 5 years ago

Thank you for the great codebase! I was able to get a PyTorch-trained version of Yolov3 (with spatial pyramid pooling) to run on an ipad pro at 26fps with this codebase.

I don't have an iOS/swift development background, and I wonder if you could point me in the right direction for modifying something with the code. My original model was trained with scaleFit, where the long side is set to 416 pixels, and the short side is padded. I'm trying to change the image scaling to match training. To that end, I found in ViewController.swift this relevant block:

// NOTE: If you choose another crop/scale option, then you must also
// change how the BoundingBox objects get scaled when they are drawn.
// Currently they assume the full input image is used.
request.imageCropAndScaleOption = .scaleFill

I want to change this to .scaleFit, but I don't understand how to make the change for the BoundingBox scaling when drawn, as suggested by the comment. Could you possibly point me in the right direction?