개발 관련 이야기40 TCP 패킷 분리 현상 Python 서버, Android 클라이언트로 소켓 통신을 하는데 문제가 생겼다. python으로 서버/클라이언트를 할 때는 생기지 않던 문제가 서로 다른 플랫폼에서는 문제가 일어났다. 문제는, 패킷이 쪼개져서 들어온다. 즉, 'aaaaa', 'bbbbb', 'ccccc', ... 순으로 데이터를 서버에서 클라이언트로 전송한다고 하자. 처음에는 잘 받아올 수도 있지만 어느 순간 'aaaaabb', 'bbbc', 'cccc', ... 이런 식으로 패킷이 보낼 때와는 다르게 온다. TCP는 사용자가 send를 할 때마다 다른 packet에 포장해서 보내는 것을 보장하지 않는다. 그렇기 때문에 서버 측에서 netstring 등의 방법을 써서 클라이언트 측에서 얼마의 바이트를 받아야 하는지 알 수 있도록 하거나.. 2022. 8. 16. VGG 논문 리뷰 공부를 하기 위해 여기에 논문 리뷰를 적기로 했다. 이번에 리뷰할 논문은 VGG이다. 옥스포드 대학교에서 개발한 모델로, 2014년 ILSVRC에서 준우승을 하였다. 매우 유명한 모델이니 자세한 설명은 생략하고 바로 본문으로 들어가겠다. VGG 모델 구조 input은 224x224의 고정된 크기를 사용하고 모델에 들어가기 전에 각 픽셀값을 전체 트레이닝셋의 RGB 평균값을 빼는 preprocessing 단계를 수행한다. 즉, P`(x, y) = P(x, y) – M (P = x, y의 원래 픽셀값, M = 전체 픽셀의 평균값) 몇단계의 conv layer 후에 max pooling을 수행하는 것이 특징이다. 깊이에 상관없이 max pooling은 5번을 수행한다. 그 후에는 3개의 FC layer를 거쳐.. 2022. 8. 9. OpenCV로 영상 녹화 테스트 버전은 OpenCV 4.4.0. 입니다. #include #include using namespace std; using namespace cv; int main(void) { VideoCapture cap;// get frames from camera VideoWriter writer;// write video with frames Mat frame; cap.open(0);// connect to camera cap >> frame;// get a frame in advance to set width n height int codec = VideoWriter::fourcc('M', 'J', 'P', 'G');// codec for avi double fps = 30.0; string v_name.. 2022. 8. 8. 명령어 모음 - Ubuntu 18.04 이제까지 윈도우만 쓰다가 일 때문에 처음으로 우분투를 써봤다. 윈도우랑 명령어가 달라서 처음에 손에 안익었지만 이제 좀 익숙해졌다. 여기에 상시로 배운 명령어를 적어놓고 나중에 기억안날 때 찾아봐야겠다. 1. top top은 현재 돌고 있는 프로세스를 보여주는 명령어이다. 갑자기 우분투가 멈췄을 경우, cpu 사용률이 가장 큰 애들(거의 리스트의 위에 있는 애들)을 죽여주면 다시 살아날 수 있다. 물론 무조건 맨 위에 것이 프로그램을 멈추게 하는 것은 아니지만... 아무튼 갑자기 아무것도 동작하지 않을 때 ctrl + alt + F6을 누르면 쉘 화면으로 들어간다. 로그인을 하고 top을 치면 저렇게 리스트가 나온다. 예를 들어 Visaul Studio Code를 사용하다가 멈췄을 경우 위의 COMMAN.. 2022. 8. 7. [NSIS] 자동실행 시 파라미터 전달 실행 시 무조건 로그인을 해야하는 우리 프로그램을 윈도우 시작할 때 자동으로 실행될 때는 그냥 트레이에만 나타나게 해달라는 요청이 있었다. 이럴 때는 NSIS에서 레지스트리에 시작프로그램으로 등록하고 실행될 때 파라미터와 함께 실행되도록 스크립트를 작성한 다음, 프로그램 시작 시 파라미터가 조건을 만족하면 다이얼로그를 생성하지 않도록 하면된다. WriteRegStr으로 다음과 같이 작성하면 된다. CurrentVersion/Run에 등록하면 시작프로그램에 등록이 되는데 이 때 WriteRegStr의 마지막 파라미터는 해당 실행파일의 위치를 문자열로 전달해주는데 어차피 커맨드창에서 해당 스트링을 복사해서 붙여넣은 후 실행하는 것이나 마찬가지 지이므로 "파일경로 파라미터" 이런 식으로 파일 경로 한 칸 띄고.. 2022. 8. 5. Window - 환경변수 설정 없이 Visual Studio에서 OpenCV 사용하기 Visual Studio에서 OpenCV를 사용하려고 인터넷을 찾아보면 대부분 PC의 환경변수를 설정해야 한다고 나온다. 그럼 그 프로젝트를 건네받는 사람은 무조건 환경변수를 설정해야 프로그램을 컴파일할 수 있다. 그래서 환경변수 설정 없이 Visual Studio에서 OpenCV를 사용하는 법을 알아봤다. **여기서는 하는 방법만 보여주기 때문에 opencv경로를 그냥 다운받은 자리 그대로 두었는데, opencv가 안깔려 있는 다른 기기에서도 작업하려고 하시는 분은 opencv 설치 경로를 프로젝트 내부에 두시면 됩니다. 0. https://opencv.org/releases/에서 OpenCV 원하는 버전을 다운 받는다. 이때 Sources 로 받지 말고 Windows로 받으셔야 합니다. Sources.. 2022. 8. 4. 이전 1 ··· 3 4 5 6 7 다음