Darkflow: ๋‹ค๋ฅธ Python ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ darkflow๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์ธก ๋ฐ ๊ฒฝ๊ณ„ ์ƒ์ž๊ฐ€ ์žˆ๋Š” ์ด๋ฏธ์ง€ ์ €์žฅ

์— ๋งŒ๋“  2018๋…„ 02์›” 11์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: thtrieu/darkflow

๊ฒฐ๊ณผ๋ฅผ ์ธ์‡„ํ•œ ํ›„ ์˜ˆ์ธก ๋ฐ ๊ฒฝ๊ณ„ ์ƒ์ž์™€ ํ•จ๊ป˜ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

darkflow.net.build์—์„œ TFNet ๊ฐ€์ ธ์˜ค๊ธฐ
์ˆ˜์ž… cv2

์˜ต์…˜ = {"๋ชจ๋ธ": "cfg/yolo.cfg", "๋กœ๋“œ": "bin/yolo.weights", "์ž„๊ณ„๊ฐ’": 0.1}

tfnet = TFNet(์˜ต์…˜)

imgcv = cv2.imread("./sample_img/sample_dog.jpg")
๊ฒฐ๊ณผ = tfnet.return_predict(imgcv)
์ธ์‡„(๊ฒฐ๊ณผ)

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cv2.rectangle(imgcv,
              (result["topleft"]["x"], result["topleft"]["y"]),
              (result["bottomright"]["x"],
               result["bottomright"]["y"]),
              (0, 255, 0), 4)
text_x, text_y = result["topleft"][
    "x"] - 10, result["topleft"]["y"] - 10

cv2.putText(imgcv, result["label"], (text_x, text_y),
            cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2, cv2.LINE_AA)

์—ฌ๊ธฐ์„œ result๋Š” return predict ๋ฉ”์„œ๋“œ์— ์˜ํ•ด ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ ๋ชฉ๋ก์˜ ๋‹จ์ผ ์š”์†Œ์ด๊ณ  imgcv๋Š” ์›๋ณธ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์ด ๋„์›€์„ ๋ฐ”๋ž๋‹ˆ๋‹ค!

๋ชจ๋“  5 ๋Œ“๊ธ€

์ƒ์ž๋ฅผ ๊ทธ๋ฆฌ๊ณ  json ์ถœ๋ ฅ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•œ ํ›„ ์ด๋ฏธ์ง€๋ฅผ ์ž‘์„ฑํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cv2.rectangle(imgcv,
              (result["topleft"]["x"], result["topleft"]["y"]),
              (result["bottomright"]["x"],
               result["bottomright"]["y"]),
              (0, 255, 0), 4)
text_x, text_y = result["topleft"][
    "x"] - 10, result["topleft"]["y"] - 10

cv2.putText(imgcv, result["label"], (text_x, text_y),
            cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2, cv2.LINE_AA)

์—ฌ๊ธฐ์„œ result๋Š” return predict ๋ฉ”์„œ๋“œ์— ์˜ํ•ด ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ ๋ชฉ๋ก์˜ ๋‹จ์ผ ์š”์†Œ์ด๊ณ  imgcv๋Š” ์›๋ณธ ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค. ์ด ๋„์›€์„ ๋ฐ”๋ž๋‹ˆ๋‹ค!

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค !

๊ฒฐ๊ณผ๋ฅผ ์ธ์‡„ํ•œ ํ›„ ์˜ˆ์ธก ๋ฐ ๊ฒฝ๊ณ„ ์ƒ์ž์™€ ํ•จ๊ป˜ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

darkflow.net.build์—์„œ TFNet ๊ฐ€์ ธ์˜ค๊ธฐ
์ˆ˜์ž… cv2

์˜ต์…˜ = {"๋ชจ๋ธ": "cfg/yolo.cfg", "๋กœ๋“œ": "bin/yolo.weights", "์ž„๊ณ„๊ฐ’": 0.1}

tfnet = TFNet(์˜ต์…˜)

imgcv = cv2.imread("./sample_img/sample_dog.jpg")
๊ฒฐ๊ณผ = tfnet.return_predict(imgcv)
์ธ์‡„(๊ฒฐ๊ณผ)

์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "load" ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฒฐ๊ณผ๋ฅผ ์ธ์‡„ํ•œ ํ›„ ์˜ˆ์ธก ๋ฐ ๊ฒฝ๊ณ„ ์ƒ์ž์™€ ํ•จ๊ป˜ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?
darkflow.net.build์—์„œ TFNet ๊ฐ€์ ธ์˜ค๊ธฐ
์ˆ˜์ž… cv2
์˜ต์…˜ = {"๋ชจ๋ธ": "cfg/yolo.cfg", "๋กœ๋“œ": "bin/yolo.weights", "์ž„๊ณ„๊ฐ’": 0.1}
tfnet = TFNet(์˜ต์…˜)
imgcv = cv2.imread("./sample_img/sample_dog.jpg")
๊ฒฐ๊ณผ = tfnet.return_predict(imgcv)
์ธ์‡„(๊ฒฐ๊ณผ)

์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "load" ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@abhishek795jha "load" ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๊ฐ€์ค‘์น˜ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค........์ดˆ๊ธฐ ์šฐ๋ฆฌ๋Š” ํ›ˆ๋ จ ํ›„ yolo ๊ฐ€์ค‘์น˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๊ฐ€์ค‘์น˜ ํŒŒ์ผ๋กœ .pb ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ›ˆ๋ จ ์‹œ๊ฐ„์— "--savepb" ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ with flow ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ .pb ํŒŒ์ผ์„ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰