Lightweight-human-pose-estimation.pytorch: libtorch C++ ๋ฐ๋ชจ

์— ๋งŒ๋“  2019๋…„ 06์›” 11์ผ  ยท  18์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Daniil-Osokin/lightweight-human-pose-estimation.pytorch

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” Openvino C++ ๋ฐ๋ชจ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ–ˆ์œผ๋ฉฐ CPU์—์„œ ์•ฝ 15fps๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

libtorch C++ ๋ฐ๋ชจ๋ฅผ ์ง€์›ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ „์ฒ˜๋ฆฌ ์ธก๋ฉด์—์„œ ๋†’์ด์— ๋”ฐ๋ผ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๊ณ  ์†์‹ค๋œ ํ”ฝ์…€์„ 0์œผ๋กœ ์ฑ„์›๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ๋Œ€์ƒ ํฌ๊ธฐ(256, 456)์— ๋งž๊ฒŒ ์ง์ ‘ ์กฐ์ •ํ•˜๋ฉด ์ž‘๋™ํ• ๊นŒ์š”?
  • ๋‚˜๋Š” ๋ชจ๋ธ์„ ์ถ”์ ํ•˜๊ณ  libtorch์—์„œ ๋กœ๋“œํ–ˆ์ง€๋งŒ 4๊ฐœ์˜ โ€‹โ€‹์ถœ๋ ฅ์ด ์žˆ์œผ๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ 2๊ฐœ์˜ ์ถœ๋ ฅ ํ…์„œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํŒŒ์ด์ฌ์—์„œ ํ‚คํฌ์ธํŠธ ์ถ”์ถœ ๋ฐ ๊ทธ๋ฃน ๋ฉ”์†Œ๋“œ๋ฅผ ๋ณด์•˜๋Š”๋ฐ, C++์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ถœ๋ ฅ ํ…์„œ์—์„œ ์ธ์Šคํ„ด์Šค์˜ ๋ชจ๋“  ํ‚คํฌ์ธํŠธ๋ฅผ ์ง์ ‘ ์ถ”์ถœํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์Šค๋‹ˆํŽซ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ณง ํšŒ์‹  ๋ฐ”๋ž๋‹ˆ๋‹ค.

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

@stereomatchingkiss ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Openvino ์ƒ˜ํ”Œ์˜ ์ธ๊ฐ„ ํฌ์ฆˆ ์ถ”์ •์„ ๋”ฐ๋ฅด๋Š” C++ ๋ฒ„์ „๋„ ์„ฑ๊ณต์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ๊ทธ๋Ÿฐ ๊ณ„ํš์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  libtorch C++ ๋ฐ๋ชจ๊ฐ€ OpenVINO๋ฅผ ์‚ฌ์šฉํ•œ C++ ๋ฐ๋ชจ๋ณด๋‹ค ๋” ๋น ๋ฅผ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์ž…๋ ฅ ํฌ๊ธฐ๋Š” ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ€์žฅ ์งง์€ ์ชฝ์„ 192๋กœ ์„ค์ •ํ•˜๊ณ  ์—ฌ๊ธฐ ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋งˆ์ง€๋ง‰ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ 192๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๊ฒฝ์šฐ์— ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ธฐ:

  1. ์ž…๋ ฅ ๋น„๋””์˜ค ์ข…ํšก๋น„๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ๋žŒ์˜ ๋ชจ์–‘์ด ์ถฉ๋ถ„ํžˆ ๋น„๋šค์–ด์ง€๋ฉด ๋ชจ๋ธ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€๋กœ ์„ธ๋กœ ๋น„์œจ์„ ์œ ์ง€ํ•˜๋ ค๋ฉด ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ฐ ์ถ•์— ๋Œ€ํ•ด ๋™์ผํ•œ ํฌ๊ธฐ). ์ด์ƒํ•œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋กœ ์ž‘๋™ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฒกํ„ฐํ™” ์—ฐ์‚ฐ(SIMD) ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ง์ˆ˜ ์น˜์ˆ˜๋กœ ๋ฐ๋ชจ ํŒจ๋“œ.
  2. ๋งˆ์ง€๋ง‰ ๋‘ ๊ฐœ์˜ ํ…์„œ๋ฅผ ์ทจํ•˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ์—๋Š” 2๊ฐœ์˜ ๋‹จ๊ณ„๊ฐ€ ์žˆ๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” ์ฒซ ๋ฒˆ์งธ(์ฒ˜์Œ ๋‘ ๊ฐœ์˜ ์ถœ๋ ฅ ํ…์„œ)์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ •์ œํ•ฉ๋‹ˆ๋‹ค. C++ ๋ฐ๋ชจ๊ฐ€ ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ๊ทธ๋ฃนํ™”์˜ C++ ๊ตฌํ˜„์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  PyTorch๋กœ C++ ๋ฐ๋ชจ๋ฅผ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค๋ฉด ๊ธฐ์—ฌํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

@Daniil-Osokin ๊ท€ํ•˜์˜ ๋‹ต๋ณ€์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋ฏธ ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ openvino์—์„œ libtorch cpp ๋ฐ๋ชจ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต ํ›„ PR์„ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

libtorch๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด openvino๋ณด๋‹ค ๋น ๋ฅด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ openvino์—์„œ ์—„์ฒญ๋‚œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณผ ์ˆ˜๋Š” ์—†์ง€๋งŒ libtorch๋Š” GPU ์ง€์›์„ ์„ ํƒ์ ์œผ๋กœ ์ผค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ๋‚ด ์ฃผ๋ณ€์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํžˆํŠธ๋งต์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ์€ Mobilenet์„ ๋ฐฑ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•ญ์ƒ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์€ ๋‚ด gtx1080์—์„œ ์•ฝ 79fps๋ฅผ ์‹คํ–‰ํ•˜์ง€๋งŒ ๋‚ด 1.7G ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋จน๋Š” ๊ธฐ์–ต ๊ดด๋ฌผ. ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ์ถ•์†Œ ์ธก๋ฉด์—์„œ ๋ชจ๋ธ ์ตœ์ ํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

OK..... ์•ฝ๊ฐ„์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.......... ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

image

PyTorch์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋ฅผ ํ™•์ธํ–ˆ๋Š”๋ฐ( demo.py ์‹คํ–‰) ~800MB๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. OpenVINO๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†Œ๋น„๋Ÿ‰์ด ์•ฝ 100MB์ž…๋‹ˆ๋‹ค.

ํŒŒ์ด์ฌ์€ 800M์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ๋ฐ์Šคํฌํƒ‘ ์‚ฌ์šฉ๋Ÿ‰์„ ๋นผ์…จ๋‚˜์š”? ๊ฑฐ์˜ ํ† ํฐ 1.2G ์ด์ƒ ์ฑ„๊ตด

@Daniil-Osokin ์•ˆ๋…•ํ•˜์„ธ์š” Danill, openvino C++๊ฐ€ ์ž…๋ ฅ ์ด๋ฏธ์ง€๋ฅผ ์ •๊ทœํ™”ํ•œ ๊ณณ์„ ๋ณด์•˜์Šต๋‹ˆ๊นŒ? (minu 128์ด๊ณ  256 ๋‚˜๋ˆ„๊ธฐ) ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ํ›„ libtorch_cpp ๋ฐ๋ชจ์—์„œ ์ผ๋ถ€ ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ๋†“์นœ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค...

์ข‹์€ ์งˆ๋ฌธ. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๋ชจ๋ธ์€ .xml ํŒŒ์ผ ๋‚ด๋ถ€์— ๋ฐ์ดํ„ฐ ๋ ˆ์ด์–ด ๋ฐ”๋กœ ๋’ค์— ๋ณ„๋„์˜ ๋ ˆ์ด์–ด๋กœ ์‚ฌ์ „ ์ฒ˜๋ฆฌ(ํ•„์š”ํ•œ ๊ฒฝ์šฐ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ:

<layer id="0" name="data" precision="FP32" type="Input">
            <output>
                <port id="0">
                    <dim>1</dim>
                    <dim>3</dim>
                    <dim>256</dim>
                    <dim>456</dim>
                </port>
            </output>
        </layer>
<layer id="1" name="Mul_/Fused_Mul_/FusedScaleShift_" precision="FP32" type="ScaleShift">
            <input>
                <port id="0">
                    <dim>1</dim>
                    <dim>3</dim>
                    <dim>256</dim>
                    <dim>456</dim>
                </port>
            </input>
            <output>
                <port id="3">
                    <dim>1</dim>
                    <dim>3</dim>
                    <dim>256</dim>
                    <dim>456</dim>
                </port>
            </output>
            <blobs>
                <weights offset="0" size="12"/>
                <biases offset="12" size="12"/>
            </blobs>
        </layer>

๋”ฐ๋ผ์„œ ์œ„์—์„œ ์ •๊ทœํ™”๊ฐ€ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(128 ๋นผ๊ธฐ ๋ฐ 256 ๋‚˜๋ˆ„๊ธฐ).

๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„์˜ ๊ฒฝ์šฐ ํŒŒ์ด์ฌ์ด ์ฐจ์ง€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

@Daniil-Osokin ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค Danill. libtorch ๋ฐ๋ชจ์— ์ „์ฒ˜๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ์—†์œผ๋ฉฐ ๊ฒฐ๊ณผ๊ฐ€ ์—ฌ์ „ํžˆ ์˜ณ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

C++์˜ ์ผ๋ถ€ ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ๊ฒ€ํ† ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ง€๊ธˆ ์–ด๋–ค ๋‹จ๊ณ„๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๋ฐ ๋ฐฉํ–ฅ์„ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค..
openvino์—์„œ ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™€ libtorch์™€ ํ†ตํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ๋ณ„๋„์˜ ์ €์žฅ์†Œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. libtorch ๊ฒฝ๋กœ๋งŒ ํŽธ์ง‘ํ•˜๋ฉด ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”์ ๋œ C++ pt ๋ชจ๋ธ์€ ์ด๋ฏธ ๊ฑฐ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ).

์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋…ผ๋ฆฌ๊ฐ€ ์–ด๋””์—์„œ ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ...
๋„์›€์ด ๋˜์‹œ๋ฉด ์‹œ๊ฐ„๋‚˜์‹ค๋•Œ ํ™•์ธํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” OpenCV๊ฐ€ ์ธํ„ฐ๋ฆฌ๋ธŒ ํ˜•์‹(HxWxC)์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ์ฝ๊ณ  ํ…์„œ๊ฐ€ ํ‰๋ฉด ์ž…๋ ฅ(CxHxW ์ˆœ์„œ)์„ ์˜ˆ์ƒํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@jinfagang ๋„์›€์ด ๋˜์…จ๋‚˜์š”?

@Daniil-Osokin ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค Danill ์ฑ„๋„ ์ˆœ์„œ๋ฅผ ํŽธ์ง‘ํ•œ ํ›„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ๊ณ  ์ผ๋ถ€ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•œ ํ›„ PR์„ ๋ณด๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค.

@jinfagang ์•ˆ๋…•ํ•˜์„ธ์š”, ๊ท€ํ•˜์˜ ์ €์žฅ์†Œ(https://github.com/jinfagang/light_human_pose_libtorch)๋Š” ๋” ์ด์ƒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ถ”์ ๋œ C++ pt ๋ชจ๋ธ์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœ ์ค‘์ด๋ฉฐ ์ž ์‹œ ๋น„๊ณต๊ฐœ์ž…๋‹ˆ๋‹ค.
pytorch ํŠœํ† ๋ฆฌ์–ผ์—์„œ ๋งํ–ˆ๋“ฏ์ด ์ง์ ‘ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

@jinfagang ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @jinfagang ,
๋‹น์‹ ์€ ๋‹น์‹ ์˜ libtorch์™€ ํ•จ๊ป˜ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
์ตœ๊ณ ์˜ ์•ˆ๋ถ€!

์•ˆ๋…•ํ•˜์„ธ์š” @jinfagang ,
๋‹น์‹ ์€ ๋‹น์‹ ์˜ libtorch์™€ ํ•จ๊ป˜ ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•ด ๊ณต์œ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
์ตœ๊ณ ์˜ ์•ˆ๋ถ€!

๋‚˜๋Š” libtorch์™€ opencv๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ C++ ๋ฒ„์ „์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๋ก ์ฝ”๋“œ๊ฐ€ ์ €์—๊ฒŒ ์†ํ•ด ์žˆ์ง€๋งŒ, ํด๋ผ์ด์–ธํŠธ๋Š” ์ œ๊ฐ€ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ข‹์€ ์†Œ์‹์€ numpy ์ž‘์—…์˜ ๋Œ€๋ถ€๋ถ„์ด libtorch์—์„œ ์ง€์›๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์ง„์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ , ํŒŒ์ด์ฌ ์Šคํฌ๋ฆฝํŠธ์™€ C++์˜ ์ถœ๋ ฅ์ด ์„œ๋กœ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋Š” ๋ฐ ๋ช‡ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์ง€๋งŒ ์–ด๋ ต์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค.

@stereomatchingkiss ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Openvino ์ƒ˜ํ”Œ์˜ ์ธ๊ฐ„ ํฌ์ฆˆ ์ถ”์ •์„ ๋”ฐ๋ฅด๋Š” C++ ๋ฒ„์ „๋„ ์„ฑ๊ณต์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

@tucachmo2202 ๊ณต์œ  ๋ถ€ํƒ๋“œ๋ ค๋„ ๋ ๊นŒ์š”?)

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