본문 바로가기

분류 전체보기

(152)
[논문 리뷰] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks faster R-CNN은 R-CNN(https://codestudycafe.tistory.com/63)을 조금 더 빠르게 바꾼 모델입니다. R-CNN에서 어떤 것이 달라졌는지로 시작해 보겠습니다.무엇이 달라졌나?R-CNN은 2000개의 영역을 뽑아내고(resion proposal) 각 영역에 대해 CNN을 돌립니다. 그러면 CNN을 2000번 돌리게 되는데 이것을 한 번으로 줄였습니다.end-to-end 학습이 가능합니다. SVM을 제거해서 한번에 학습이 가능합니다.3개의 모델을 합쳐서 만들었습니다.(CNN, resion proposan network, fast R-CNN)어떻게 진행되나?다음 과정을 거칩니다.먼저 CNN을 통과시켜 feature map을 뽑아냅니다.resion proposal netwo..
[논문 리뷰] Rich feature hierarchies for accurate object detection and semantic segmentation(R-CNN) 이 전의 논문 리뷰에서는 모델의 구조에 집중을 했었습니다. 이 논문에서 딥러닝스러운 부분은 사실 cnn이 전부고 이미지를 전처리하는 데에 신경을 많이 쓰고 있습니다. 따라서 이 리뷰도 전처리에 신경을 쓰도록 하겠습니다. 무엇을 하는 녀석인가각 객체들이 어디에 있는지 찾아주는 인공지능입니다.개요객체를 탐지하는데 크게 3 단계를 거칩니다.각 이미지를 적절한 영역(2000개)로 나눕니다.각 영역을 cnn에 넣습니다.그렇게 나온 정보를 이용해서 어떤 객체인지 분류합니다. 적절한 영역을 어떻게 나누는가?이 논문에서는 selective search 기법을 사용해서 구역을 나누었습니다. 헷갈릴 수 있으니 용어부터 잡고 진행합니다. resion proposal : 객체가 있을 만한 곳을 찾는 것selective sea..
ip 위치 추적 가끔 보면 ip로 위치 추적을 한다는 이야기를 듣습니다. 완벽한 것은 아니지만 대략 어디에 있는지 정도는 알 수 있습니다.집 위치 추적우선 자신의 집 주소를 알아낸다고 해 봅시다. cmd 창을 열어 ipconfig를 입력해 ip을 알아냅니다. 이제 ip location을 구글에 검색해서 해당 사이트에 들어갑니다(https://www.iplocation.net/).여기에 ip를 입력하면 위치가 나옵니다. 정확히 일치하거나 그러진 않지만 어느 지역인지는 대략적으로 알 수 있겠네요.남의 컴퓨터 위치 추적구글의 서버 위치를 알아봅시다. 다시 칼리 리눅스를 열고 터미널에 apt install dnsutils를 입력합니다. dns와 관한 일을 할 수 있게 해줍니다.이제 nslookup을 입력하고 www.google..
opencv - 프로젝트 2 - 3. 카드 인식 이전 프로젝트(https://codestudycafe.tistory.com/51)에서 전처리를 했습니다. 이번에는 직접 학습을 시켜 줍시다.그전에생각해 보니 모델의 마지막 레이어는 (None, 200, 200, 1)이 됩니다. 이 형식에 train_label을 맞춰줍시다.모델 생성이제 모델을 만들어 봅시다.from keras.layers import Dense, Input, Conv2D, MaxPool2D, Conv2DTranspose, Cropping2D, Concatenatefrom keras.models import Modelfrom keras.activations import sigmoidinput = Input(shape=(200,200,3))c_1_1 = Conv2D(32,(3,3),paddi..
쉘 털어보기 바인딩 쉘개념기본적인 흐름은 다음과 같습니다.피해자가 공격자에게 포트를 열어줍니다. 해당 포트로 들어오면 권한을 획득할 수 있습니다.공격자가 해당 포트로 접속을 합니다.물론 피해자가 스스로 열어줄 일은 없으니 이걸 열 수 있도록 공격자가 열심히 조작합니다.방화벽에서 특정 포트만 허용해 줌으로써 막을 수 있습니다.실습리눅스였다면 nc 명령어로 쉽게 할 수 있지만 윈도우는 그 명령어가 없기 때문에 윈도우의 특정 포트를 열어주는 프로그램을 설치합니다. https://github.com/cyberisltd/NcatPortable에 있 ncat.exe를 설치하고 설치한 위치에서 cmd 창을 엽니다.해당 창에서 ncat.exe -nlvp 7777 -e cmd.exe 를 입력합니다. -n : 호스트명과 포트를 이름이..
6612 - 개미의 이동 step 1더보기개미의 위치에만 집중을 해봅시다. 개미가 서로 통과한다고 가정할 때의 위치와 개미가 충돌할 때의 위치가 동일합니다. 즉, 어떤 개미인지는 모르지만 언제 어느 방향으로 개미가 떨어질지는 구할 수 있습니다.step 2더보기개미들의 순서에 집중해 봅시다. 왼쪽 개미부터 1, 2, ..., N으로 번호를 매겨봅시다. 개미끼리 서로 뛰어넘지 못하므로 제일 먼저 왼쪽으로 떨어지는 개미는 1번 개미, 다음으로 떨어지는 개미는 2번 개미,... 이런 식으로 떨어집니다. 오른쪽도 마찬가지로 제일 먼저 떨어지는 개미는 N번 개미, 다음은 N-1번 개미,... 이런 식입니다.언제 어느 방향으로 떨어지는지 알고 있으므로 그때 떨어지는 개미가 어떤 개미인지도 알 수 있습니다. 그럼 이게 모든 개미 변형 문제를 ..
11868 - 님 게임 2 step 1더보기우선 정답부터 이야기하고 가겠습니다. 나온 모든 수를 xor을 한 값이 0이면 후공 승, 아니면 선공 승입니다.놓여진 돌의 개수를 xor한 값을 그런디 넘버라고 하겠습니다. (원래 그런디 넘버의 정의는 많이 복잡하지만 이 문제에서의 그런디 넘버는 xor로 정해집니다.)만약 그런디 넘버가 0이 아니라면 이 값이 0이 되도록 돌을 가져갈 수 있습니다.만약 그런디 넘버가 0이라면 어떻게 돌을 가져가도 이 값은 0이 될 수 없습니다.step 2더보기다음 예시를 봅시다. 29 2 이 예시에서 그런디 넘버는 9 ^ 2 = 11입니다. 그리고 9개가 있는 돌더미에서 7개를 가져가면 그런디 넘버를 2 ^ 2 = 0으로 만들 수 있습니다.그런디 넘버$G$의 최상위 비트에 집중해 봅시다. 그럼 해당 비트를..
24231 - 해석 step 1더보기dp[i][j] : i번째 부터 j번째 까지만 있다고 했을 때 만들 수 있는 올바른 괄호 문자열의 개수step 2더보기dp[i][j]를 채운다고 생각해 봅시다. i번째 문자는 반드시 여는 괄호여야 합니다. 이 문자는 i+1, i+3. i+5,... 번째 문자와 짝을 이룰 수 있습니다(물론 그 문자는 닫는 괄호여야 합니다). 만약 k번째 문자와 짝을 이루었다면 dp[i][j] += dp[i+1][k-1] * dp[k+1][j]를 해줍니다.이런 식으로 dp를 채워나가면 됩니다. 탐색 순서는 j-i가 작은 순서대로 탐색하면 됩니다.코드더보기#define _CRT_SECURE_NO_WARNINGS#include#include#include#include#include#include#include..
kioptrix, DVWA 세팅 kioptrix 세팅kioptrix를 한번 세팅해 보겠습니다. kioptrix 공식 페이지(https://www.vulnhub.com/entry/kioptrix-level-1-1,22/)로 갑니다. 여기서 Download (Mirror):를 다운받고 압축을 풀어줍니다. 그리고 virtual box에서 새로 만들기를 클릭합니다.종류를 linux, 버전을 linux 2.2로 해줍니다. 가상 하드 디스크는 굳이 만들지 않도록 합시다. 이거 없으면 막 안된다고 하는데 일단 넘어가 줍니다. 설정 - 저장소 - 컨트롤러 : IDE의 제일 오른쪽 아이콘을 클릭합니다. 여기서 추가를 클릭하고 다운받은 파일을 추가해 줍니다. 그리고 네트워크 탭에 가서 이전에 해 준 것처럼 네트워크 설정을 해줍니다. DVWA 세팅vuln..
칼리 리눅스 설치 아주 기초적인 해킹을 실습하고 내용을 저장해 두는 페이지입니다. virtual box 설치칼리 리눅스는 os 중 하나로 해킹 관련 툴이 기본적으로 설치되어 있어 입문할 때 많이 씁니다. virtual box로 가상 환경을 하나 만들어 칼리 리눅스를 실행해 봅시다. virtual box 홈페이지(https://www.virtualbox.org/)에 있는 다운로드를 클릭합니다.그리고 os 환경에 맞는 virtual box를 다운로드합니다. 칼리 리눅스 설치kali linux 공식 홈페이지(https://www.kali.org/get-kali/#kali-platforms)로 갑니다. 쭉 아래로 내리다 보면Pre-built Virtual Machines라고 하면서 가상 환경에 설치하는 파일이 있습니다. 저희는 ..