no image
GDG united - Build with AI 2024 컨퍼런스 후기
GDG united Build with AI 2024어제 GDG Cloud/Golang/Pangyo가 연합으로 주최한 Build With AI 콘퍼런스를 들으러 갔다.세션의 구성은 위와 같다.참여비는 세션과 발표자가 확정되기 전에는 5,000원 확정된 후에는 10,000원이다. 나는 Hands-on Session 1,2와 Session 4,5,6에 참여했다. Hands-on Session 1 | 조희주님https://www.cloudskillsboost.google/paths/236 Google Cloud Skills BoostQwiklabs에서는 개발자와 IT 전문가가 클라우드 플랫폼 및 Firebase, Kubernetes와 같은 소프트웨어를 학습하는 데 도움이 되는 실제 Go..
2024.04.28
no image
c++ 객체 반환, 포인터 관리, 스마트 포인터
객체를 반환하는 3가지 형태 1. 정적으로 생성한 객체 반환 TestInstance TTest::getTestInstance(int i) { TestInstance test_instance{i}; return test_instance; } int main() { std::cout
2024.04.23
no image
윈도우10 Qt6/ Qt Creator13/ Opencv4.9 연동, 설정
Window Qt6 OpenCV 연동 cv2 연동 확인용으로, 별도의 빌드 없이 windows를 다운로드하고 extract 해준다. 윈도우는 시스템 환경 변수 path에 dll 폴더 위치를 넣는다. C:\Users\~~\opencv\build\x64\vc16\bin 환경 변수가 잘 들어갔는지 opencv_version을 입력해 확인한다. Qt를 설치할 때, 여러 옵션이 있는데 for desktop dev를 고르면 오른쪽과 같이 체크가 되는 듯하다. Custom으로 설치해도 무관한데 윈도우의 경우 MSVC 옵션들을 선택해 주자. Qt Creator(윈도우) 에서 MinGW(gcc/g++) 컴파일러로 cv2를 사용하려면 cv2를 MinGW로 빌드해줘야 한다. Qt creator에서 New Project를 만..
2024.04.15
no image
Segmentation/Detection 방법
Semantic Segmentation classification 신경망에서 FC layer 대신에 Fully Convolution을 거친다. Fully Convolution으로 마무리하면 위치 정보를 그대로 가지고 있고 입력 크기가 자유로워진다. (fc layer는 이전 레이어의 모든 뉴런과 연결되어 있고, 입력 size가 변경되면 가중치 수도 변경되기 때문에, 입력 size가 고정되어 있다.) 결과적으로 위치 정보를 가진 채로 classification을 할 수 있고, 해당하는 픽셀 영역에 어떤 물체가 있는지 알 수 있다. 다만, Conv을 거치면서 spatial dimension이 줄어들었기 때문에, 다시 늘려주기 위한 deconvolution, unpooling 등의 upsample 과정을 거친다..
2024.04.13
no image
c++ inline compile
클래스 정의에서 함수의 정의는 컴파일된 이후에 링커에 의해 하나의 실행파일로 묶이기만 하면 된다. //Car.h #ifndef __Car_h__ #define __Car_h__ class Car { private: int fuelGauge; public: void getFuelGauge(); void setFuelGauge(int fuel); }; #endif //Car.cpp #include "Car.h" #include inline void Car::getFuelGauge() { printf("now fuel : %d", this->fuelGauge); } inline void Car::setFuelGauge(int fuel) { this->fuelGauge = fuel; } //Main.cpp #i..
2024.04.08
no image
프로그래머스 21kakao_blind 순위검색(python)
https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr from bisect import bisect_left def solution(info, query): a = {"java":"0", "cpp":"1", "python":"2"} b = {"backend":"0", "frontend":"1"} c = {"junior":"0", "senior":"1"} d = {"chicken":"0", "pizza":"1"} results = [] for i in..
2024.03.28
no image
열혈 C++ 프로그래밍) Part 1
C++은 함수 호출 시 매개변수 자료형이 안 맞아도 에러를 던지지 않고(경고만 함) 자동 형변환 되고 데이터 손실이 난다. 인라인 함수 inline int add(int a, int b) { return a + b; } inline 키워드를 사용해 함수를 정의할 수 있다. inline 키워드를 사용하면 해당 함수가 호출되는 대신 컴파일러가 해당 함수의 코드를 호출 지점에 직접 삽입하려고 시도한다. 이로 인해 호출 오버헤드가 제거되어 실행 시간을 단축할 수 있다. 하지만 코드 크기가 증가한다 그리고 컴파일러에게 인라인으로 처리하도록 제안하는 것으로 수용하지 않을 수도 있다. 매크로 함수 #define SQUARE(x) ((x) * (x)) ... void main(void) { cout
2024.03.04
no image
라플라스 변환, 전달 함수, 특성 방정식, DC gain
Convolution Convolution의 정의는 total 통증이다. Laplace transform final value theorem, 라플라스 변환/역변환 transfer function(전달 함수) 실제 장비로 정교한 임펄스 function을 만드는 건 어렵기에 임펄스 응답을 라플라스 하는 것은 어렵다. 그래서 전달 함수는 출력/입력으로 정의하는게 낫다. G(s) = Y(s)/U(s) 시간 도메인에서 y(t) 시간 도메인에서 y(t)는 라플라스 역변환을 이용하는 것이 간편하다. characteristic function (특성 방정식), DC gain
2024.03.01
no image
Shift Register - 74HC595
Shift Register FND(Flexible Numeric Display)를 다룬다고 가정해 보자. 한 자리 숫자만을 출력해도 8개의 핀이 필요하다. 이런 경우 시프트 레지스터를 활용하여 하나의 핀으로 8개의 output을 제어할 수 있다. (약간의 delay는 생긴다.) 74HC595 Q0 ~ Q7 : parallel output pins of register DS : Serial data input pin SHCP : shift register clock pin STCP : storage register(Latch) clock pin OE : output enable, Latch의 출력을 끌 수 있다. MR : master re-clear, 시프트 레지스터를 reset 할 수 있다. Shift ..
2024.02.19