๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ’ป Programming/Computer Vision12

[OpenCV] Perspective Transformation (์›๊ทผ ๋ณ€ํ™˜) | ์™œ๊ณก๋œ ์˜์ƒ์„ ํŽด์ฃผ๋Š” ๋ฐฉ๋ฒ• Geometric Transformation ์˜์ƒ์€ ๊ธฐํ•˜ํ•™์  ๋ณ€ํ™˜์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜๋  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ž์œ ๋„์— ๋”ฐ๋ผ translation, eclidean,similarity, affine, perspective(projective) ๋ณ€ํ™˜์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์ด ์ค‘์—์„œ perspective transformation์˜ ์ž์œ ๋„๊ฐ€ ๊ฐ€์žฅ ํฌ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ๊ฐ€์žฅ ๋งŽ์€ ๋ณ€ํ˜•์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ณ€ํ™˜์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๋‹ค์–‘ํ•œ ์ปดํ“จํ„ฐ ๋น„์ „ ํ”„๋กœ์ ํŠธ์—์„œ ์นด๋ฉ”๋ผ์˜ ๊ฐ๋„์— ๋”ฐ๋ผ ์™œ๊ณก๋˜๋Š” ๊ฐ์ฒด๋‚˜ ํ…์ŠคํŠธ ๋“ค์„ ์ •๋ฉด์œผ๋กœ ๋ฐ”๋ผ๋ณด๋Š” view๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด affine ๋˜๋Š” perspective transformation์ด ์‚ฌ์šฉ๋œ๋‹ค. Perspective Transformation ๊ทธ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์ž์œ ๋„๋ฅผ ๊ฐ€์ง€๋Š” perspective tr.. 2023. 3. 29.
[Object Detection] ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ๋Š” YOLOv5 ๋ชจ๋ธ ํ•™์Šตํ•˜๊ธฐ (์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ) Object Detection Object Detection(๊ฐ์ฒด ๊ฒ€์ถœ)์ด๋ž€ ์ด๋ฏธ์ง€์—์„œ ๊ฒ€์ถœํ•˜๊ณ  ์‹ถ์€ ๊ฐ์ฒด์˜ ์œ„์น˜(๋ฐ”์šด๋”ฉ ๋ฐ•์Šค)๋ฅผ ์ฐพ๊ณ  ๊ฐ์ฒด์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. ๊ฐ์ฒด ๊ฒ€์ถœํ•˜๋ฉด ์—ญ์‹œ ๋งŽ์€ ๋ถ„๋“ค์ด YOLO ๋ชจ๋ธ์„ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ, YOLO ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ํŠœํ† ๋ฆฌ์–ผ์„ ์ค€๋น„ํ•ด ๋ดค๋‹ค. ์š”์ฆ˜์€ ์ปด๊ณต๊ณผ๋‚˜ AI ๊ด€๋ จ ๊ณต๋ถ€๋ฅผ ํ•˜์‹œ๋Š” ํ•™์ƒ์ด ์•„๋‹ˆ๋”๋ผ๋„ ๋ณธ์ธ์˜ ํ•™์—…์— ๊ฐ์ฒด ๊ฒ€์ถœ ๊ธฐ์ˆ ์„ ์ ์šฉ์‹œ์ผœ๋ณด๋ ค ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋”ฉ์„ ํ•  ์ค„ ๋ชจ๋ฅด๋ฉด ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ์ผ์ง€๋ผ๋„ ๋”ฐ๋ผํ•˜๋‹ค๋ณด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚˜๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋Š” ์ƒํ™ฉ์ด ๋งŽ์ด ์—ฐ์ถœ๋œ๋‹ค. ๋•Œ๋ฌธ์— ์ฝ”๋”ฉ์„ ํ•  ์ค„ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋„ ์‰ฝ๊ฒŒ ๋”ฐ๋ผํ•  ์ˆ˜ ์žˆ๋Š” YOLO ํ•™์Šต ํŠœํ† ๋ฆฌ์–ผ์„ ์ค€๋น„ํ–ˆ์œผ๋‹ˆ ํ•„์š”ํ•œ ๋ถ„๋“ค๊ป˜ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. - ํ•™์Šต ์ฝ”๋“œ ๋ ˆํผ.. 2022. 12. 17.
[VS Code] ์ด๋ฏธ์ง€ ๊ด€๋ จ Extension ์ถ”์ฒœ : Image preview, Python Image Preview VS Code์—” ์ •๋ง ํŽธํ•œ extension ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์ด ๋งŽ์€๋ฐ, ๊ทธ ์ค‘์—์„œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž์ฃผ ๋‹ค๋ฃจ๋Š” ๋ถ„๋“ค๊ป˜ ์œ ์šฉํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‘ ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. 1. Image preview ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์ด๋ฏธ์ง€ ์ธ๋„ค์ผ์„ ๋ณด์—ฌ์ค€๋‹ค. ํ•„์ˆ˜์ ์ด์ง„ ์•Š์ง€๋งŒ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ๋ฅผ ์ ์—ˆ๋Š”์ง€ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์„œ ์œ ์šฉํ•˜๋‹ค. *์ž์„ธํ•œ ์‚ฌ์šฉ๋ฒ•์€ ์œ„ ๋™์˜์ƒ์„ ์ฐธ๊ณ  2. Python Image Preview ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ 1๋ฒˆ์— ๋น„ํ•ด ํ›จ์”ฌ ๋” ์œ ์šฉํ•˜๋‹ค. ์˜์ƒ์ฒ˜๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํ•™์Šตํ•˜๋‹ค ๋ณด๋ฉด ์ด๋ฏธ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜๋˜์—ˆ๋Š”์ง€ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋“ค์–ด๊ฐ”๋Š”์ง€ ๊ถ๊ธˆํ•  ๋•Œ๊ฐ€ ๋งŽ์€๋ฐ, ๊ทธ๋Ÿด ๋•Œ๋งˆ๋‹ค ์ด๋ฏธ์ง€๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•ด์„œ ์—ด์–ด๋ณด๊ธฐ๊ฐ€ ๊ต‰์žฅํžˆ ๊ท€์ฐฎ๋‹ค. ํ•˜์ง€๋งŒ Python .. 2022. 12. 16.
[openCV] ์ด๋ฏธ์ง€ ์œ„์— ์„ , ์‚ฌ๊ฐํ˜•, ์› ๊ทธ๋ฆฌ๊ธฐ ์ด๋ฏธ์ง€์—์„œ ๋ฌด์–ธ๊ฐ€ ๊ฒ€์ถœํ•˜๊ณ  ํ‘œ์‹œํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” line, rectangle, circle ์„ธ ๊ฐ€์ง€ ๊ฐ„๋‹จ ์ •๋ฆฌ. cv2.line(์ด๋ฏธ์ง€, (์‹œ์ž‘์ขŒํ‘œ), (๋ ์ขŒํ‘œ), ์ปฌ๋Ÿฌ, ๋‘๊ป˜) cv2.rectangle(์ด๋ฏธ์ง€, (์ขŒ์ƒ๋‹จ ์ขŒํ‘œ), (์šฐํ•˜๋‹จ ์ขŒํ‘œ), ์ปฌ๋Ÿฌ, ๋‘๊ป˜) cv2.circle(์ด๋ฏธ์ง€, (์ค‘์‹ฌ ์ขŒํ‘œ), ๋ฐ˜์ง€๋ฆ„, ์ปฌ๋Ÿฌ, ๋‘๊ป˜) import numpy as np import cv2 black_canvas = np.zeros((500,500,3)) R, G, B = (0,0,255), (0,255,0), (255,0,0) cv2.line(black_canvas, (10,100),(500,300), R, thickness=10) cv2.rectangle(black_canvas, (10, 10), .. 2022. 10. 31.
[python] ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ํ™˜๊ฒฝ์—์„œ ์ด๋ฏธ์ง€ ์ถœ๋ ฅํ•˜๊ธฐ ํŒ def img_show(title='image', img=None, figsize=(8 ,5)): plt.figure(figsize=figsize) if type(img) == list: if type(title) == list: titles = title else: titles = [] for i in range(len(img)): titles.append(title) for i in range(len(img)): if len(img[i].shape) 2022. 10. 31.
[python] OpenCV, PIL, Numpy, PyTorch ํƒ€์ž… ๋ถ„์„, ํƒ€์ž… ๋ณ€ํ™˜ ์ •๋ฆฌ # PIL RGB ํƒ€์ž…์œผ๋กœ ์ด๋ฏธ์ง€ ์ฝ์Œ torchvision.transforms ๋ชจ๋“ˆ์—์„œ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด PIL์˜ Image array ์ด๋ฏ€๋กœ pytorch ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ์‹œ PIL ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋”ฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋งŽ์ด ์‚ฌ์šฉ numpy array ์ธ๋ฑ์‹ฑ ๋ถˆ๊ฐ€๋Šฅ → ์ƒํ™ฉ์— ๋”ฐ๋ผ numpy array๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ์ž‘์—… ํ•„์š” ์‚ฌ์ด์ฆˆ ํ™•์ธ์‹œ .size() ๋ฉ”์„œ๋“œ๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•œ๋ฐ, (W,H)๋กœ ์ถœ๋ ฅ๋จ. ํ•˜์ง€๋งŒ, numpy array ๋กœ ๋ณ€ํ™˜์‹œ (H,W,C)๋กœ ๋‚˜์˜ค๋‹ˆ๊นŒ ์ฃผ์˜. ์ฆ‰, .size()๋กœ ํ™•์ธ ์‹œ์—๋งŒ (W,H)๋กœ ๋‚˜์˜ค๋Š” ๊ฒƒ. from PIL import Image image = Image.open("image.jpg").convert('RGB') image.show() image.save("saved.. 2022. 7. 21.
728x90