๋ชฉ๋ก๐ฉ๐ป IoT (Embedded) (235)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
(์ฝ๋๋ ์ ์๊ถ์ ๊ณต์ ์๋ฉ๋๋น!!) ๐ฅ LED 1์ด๋ง๋ค ๊น๋นก์ด๊ธฐ : LED์ ์งง์ ๋ถ๋ถ (-) ๊ธด ๋ถ๋ถ (+) V(์ ์) / R(์ ํญ) = I(์ ๋ฅ) : ์ ์ LED 1.8V : LED 20mA : ์ ์ 5V : ์ ํญ 160 ohm void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); } ๐ ์๋ฆฌ์ผ ํต์ : PC์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๊ฒ ํจ ๐ฅ LED ๊ฒฝ๊ด๋ฑ
๐ฅ ์๋์ด๋ ธ : ์ํธ์์ฉํ๋ ๊ธฐ๊ธฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์คํ์์ค ํ๋กํ ํ์ดํ ํ๋ซํผ ๐ MCU (Micro Controller Unit) : ํน์ ๊ธฐ๋ฅ์ ์ ์ดํ๊ธฐ ์ํ ์ ์ฑ๋ฅ์ ์์ ์ฅ์น : Memory + I/O + CPU ๐ฅ ์๋์ด๋ ธ ๊ตฌ์กฐ : ๋ฆฌ์ ๋ฒํผ : USB ์ปค๋ฅํฐ : ์ ์ ์ฐ๊ฒฐํ : ๋์งํธ ์ ์ถ๋ ฅํ : ์๋ ๋ก๊ทธ ์ ๋ ฅํ : MCU ๐ฅ ์ค์ผ์น : ์๋์ด๋ ธ์ ํ๋ก๊ทธ๋จ ์ด๋ฆ void setup() { // put your setup code here, to run once: // ๋ณ์ ์ด๊ธฐํ, ์ผ์ ์ฐ๊ฒฐ, ํ์ ๋ฐฐ์ด } void loop() { // put your main code here, to run repeatedly: // ํน์ ์กฐ๊ฑด } ๐ ๊ตฌ์กฐ : C++(C) ์ดํด : Setup (์ค๋น ๋ฐ ์ด๊ธฐํ..
โญ Rect_ ํด๋์ค 2์ฐจ์์ ์ฌ๊ฐํ ์ ๋ณด๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ํ ํ๋ฆฟ ํด๋์ค ๋ฉค๋ฒ ๋ณ์๋ก ์๊ฐ ์ขํ(x, y)์ ํฌ๊ธฐ(width, height) ์ ๋ณด ํฌํจ ์ฌ๊ฐํ์ ์ ์ํ ์ ์๋ ์ ๋ณด๋ก, ๊ฐ์ฒด๋ฅผ ์ ์ธ // Rect ํด๋์ค #include using namespace cv; using namespace std; int main() { Size2d sz(100.5, 60.6); Point2f pt1(20.f, 30.f), pt2(100.f, 200.f); Size_ sz3(100.2, 300.9); // Rect_ ๊ฐ์ฒด ๊ธฐ๋ณธ ์ ์ธ ๋ฐฉ์ Rect_ rect1(10, 10, 30, 50); Rect_ rect2(pt1, pt2); Rect_ rect3(Point2d(20.5, 10), sz); // Size_ ๊ฐ..
โญ Size_ ํด๋์ค ์ด๋ฏธ์ง๋ ์ฌ๊ฐํ์ ํฌ๊ธฐ๋ฅผ ๊ท์ ํ๋ ํ ํ๋ฆฟ ํด๋์ค width, height์ ๋ฉค๋ฒ ๋ณ์ ๊ฐ๋๋ค // Size ํด๋์ค #include using namespace cv; using namespace std; int main() { // Size_ ๊ฐ์ฒด ๊ธฐ๋ณธ ์ ์ธ ๋ฐฉ์ Size_ sz1(100, 200); Size_ sz2(92.3f, 125.23f); Size_ sz3(100.2, 300.9); // Size_ ๊ฐ์ฒด ๊ฐ๊ฒฐ ์ ์ธ ๋ฐฉ์ -> i, f, d Size sz4(120, 69); Size2f sz5(0.3f, 0.f); Size2d sz6(0.25, 0.6); Point2d pt1(0.25, 0.6); Size2i sz7 = sz1 + (Size2i)sz2; Size2i sz8 =..
โญ Point3_ ํด๋์ค 3์ฐจ์ ์๋ฃ๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ์๋ฃํ โ namespace ๋ด๋ถ ์๋ณ์(ํ์, ํจ์, ๋ณ์ ๋ฑ)์ ๋ฒ์๋ฅผ ์ ๊ณตํ๋ ์ ์ธ์ ์์ญ #include using namespace cv; using namespace std; int main() { // ๊ฐ์ฒด ๊ธฐ๋ณธ ๋ฐ ๊ฐ๊ฒฐ ์ ์ธ ๋ฐฉ์ Point3_ pt1(100, 200, 300); Point3_ pt2(92.3f, 125.23f, 250.f); Point3f pt3(0.3f, 0.f, 15.7f); Point3d pt4(0.25, 0.6, 33.3); // ๊ฐ์ฒด ๊ฐ๊ฒฐ ์ ์ธ ๋ฐ ๊ฐ์ฒด ์ฐ์ฐ -> i, f, d Point3i pt5 = pt1 - (Point3i)pt2; Point3f pt6 = pt2 * 3.14f; Point3d pt7 = ..
โญ Point_ ํด๋์ค ๊ฐ๋ก์ ์ธ๋ก์ ์์น๋ฅผ 2์ฐจ์ ์ขํ๋ก ๋ํ๋ด๊ธฐ ์ํ ํ ํ๋ฆฟ ํด๋์ค ๋ฉค๋ฒ ๋ณ์๋ก ๊ฐ๋ก์ ์ธ๋ก ์์น๋ฅผ ๋ํ๋ด๋ x, y โ Point_() : ํด๋์ค ์์ฑ์ โญ OpenCV์ API ํด๋น ํจ์๋ง๋ค ๊ทธ ํจ์๊ฐ ์ ์๋ ํค๋ ํ์ผ ํฌํจํด์ผ๋จ ( include ) #include "opencv2/opencv.hpp" #include int main() { // Point_ ๊ฐ์ฒด ์ ์ธ ๋ฐฉ์ cv::Point_ pt1(100, 200); cv::Point_ pt2(92.3f, 125.23f); cv::Point_ pt3(100.2, 300.9); // Point_ ๊ฐ์ฒด ๊ฐ๊ฒฐ ์ ์ธ ๋ฐฉ์ -> i, f, d cv::Point2i pt4(120, 69); cv::Point2f pt5(0.3f, 0.f)..
โญ ์ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ : ์ฝ์ ์ฑ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ โญ ๋๋ฒ๊น // EX3.cpp : ์ด ํ์ผ์๋ 'main' ํจ์๊ฐ ํฌํจ๋ฉ๋๋ค. ๊ฑฐ๊ธฐ์ ํ๋ก๊ทธ๋จ ์คํ์ด ์์๋๊ณ ์ข ๋ฃ๋ฉ๋๋ค. // #include int main() { std::cout [๋๋ฒ๊น ํ์ง ์๊ณ ์์] ๋ฉ๋ด // ํ๋ก๊ทธ๋จ ๋๋ฒ๊ทธ: ํค ๋๋ [๋๋ฒ๊ทธ] > [๋๋ฒ๊น ์์] ๋ฉ๋ด // ์์์ ์ํ ํ: // 1. [์๋ฃจ์ ํ์๊ธฐ] ์ฐฝ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ถ๊ฐ/๊ด๋ฆฌํฉ๋๋ค. // 2. [ํ ํ์๊ธฐ] ์ฐฝ์ ์ฌ์ฉํ์ฌ ์์ค ์ ์ด์ ์ฐ๊ฒฐํฉ๋๋ค. // 3. [์ถ๋ ฅ] ์ฐฝ์ ์ฌ์ฉํ์ฌ ๋น๋ ์ถ๋ ฅ ๋ฐ ๊ธฐํ ๋ฉ์์ง๋ฅผ ํ์ธํฉ๋๋ค. // 4. [์ค๋ฅ ๋ชฉ๋ก] ์ฐฝ์ ์ฌ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ๋ด ๋๋ค. // 5. [ํ๋ก์ ํธ] > [์ ํญ๋ชฉ ์ถ๊ฐ]๋ก ์ด๋ํ์ฌ ์ ์ฝ๋ ํ์ผ์ ๋ง๋ค๊ฑฐ๋, [ํ๋ก์ ..
https://pseudo-lab.github.io/Tutorial-Book/chapters/object-detection/Ch1-Object-Detection.html 1. ๊ฐ์ฒด ํ์ง ์๊ฐ — PseudoLab Tutorial Book ๊ฐ์ฒด ํ์ง(Object Detection)๋ ์ปดํจํฐ ๋น์ ๊ธฐ์ ์ ์ธ๋ถ ๋ถ์ผ์ค ํ๋๋ก์จ ์ฃผ์ด์ง ์ด๋ฏธ์ง๋ด ์ฌ์ฉ์๊ฐ ๊ด์ฌ ์๋ ๊ฐ์ฒด๋ฅผ ํ์งํ๋ ๊ธฐ์ ์ ๋๋ค. ์ธ๊ณต์ง๋ฅ ๋ชจ๋ธ์ด ๊ทธ๋ฆผ 1-1 ์ข์ธก์ ์๋ ๊ฐ์์ง ์ฌ์ง์ ๊ฐ pseudo-lab.github.io โ ์๋ฃ์ฉ ๋ง์คํฌ ํ์ง ๋ชจ๋ธ ๋ง์คํฌ๋ฅผ ์ฐฉ์ฉํ ์ฌ๋, ์ฐฉ์ฉํ์ง ์์ ์ฌ๋ ๋๋ ๋ง์คํฌ๋ฅผ ๋ถ์ ์ ํ๊ฒ ์ฐฉ์ฉํ ์ฌ๋์ ๊ฐ์งํ๋ ๋ชจ๋ธ์ ๋ง๋ค๊ธฐ ๐๐จ ๋ฐ์ดํฐ ์ธํธ 3 ๊ฐ์ง ํด๋์ค ์ ์ํ๋ 853 ๊ฐ์ ์ด๋ฏธ์ง ์ PASCAL VOC ํ์..