이미지 학습데이터를 크롤링하며 수집하는 도중 이런 생각이 들었다. Show 아니 어차피 <img src> 값을 통해 이미지 url을 열어서 하드에 저장하는 방식인데. 그냥 src 값만 저장하고 나중에 읽기만한 다음에 트레이닝데이터로 쓰면 좋지 않을까?심지어 PIL 의 Image 패키지를 사용하면 로컬경로를 넣지않고 이미지 주소값을 넣어도 이미지가 주피터에서 열린다는 사실도 알고있었다. Image.open(url) 하면 해당 이미지가 주피터에서 열림.. 그래서 나는 이미지주소만 받아서 그 이미지를 numpy 객체로 변환하는 방법을 공유하려 한다. 어차피 모델 학습을 위한 input data 는 numpy 이니까.. ㅎㅎ 먼저 나는 이미지주소만 크롤링했다. url 을 다 크롤링했다면 함수를 정의해서 사용하면된다.
이 함수를 간단히 설명하자면 request를 통해 url의 있는 이미지 정보를 가져오고 그 url을 읽어서 bytearray로 감싸주고 그걸 다시 uint8 형식의 np.array로 변환한다. 그리고 그것을 디코딩하여 3차원 이미지 np.array형식으로 바꿔 리턴 어렵게 설명했지만 함수이름대로 그냥 이미지 주소를 학습하기 좋은 3차원 행렬 데이터로 바꿔준다고 보면된다.
여기서 이미지 주소(imgAdr)와 종속변수인(log_score)를 가지고 있는 데이터프레임의 .value를 해주면 np.array형식으로 바뀐다. 이제 이걸 for 문을 통해 순회하면서 처리하면 되는데.
먼저 차원이 동일한 np.empty 를 만들어준다. 이것은 모든 값이 0인 np.array를 만들어주는 것으로 데이터가 들어갈 통이라고 생각하면 된다. 이제 for문을 돌면서 값을 대입한다. 여기서 주의할 점은 for문을 돌면서 request를 통해 계속 인터넷에 접속을 하는데 자꾸 접속을 반복하면 해당 호스트에서 아이피를 차단할 수 도 있고 이미지주소가 사라져서 404에러를 발생시킬수도 있다. 그래서 print(i) 를 찍어보고 에러가 발생한다면 i번째 다음부터 진행하면 된다. * i 의 값을 에러가 발생한 인덱스 값으로 지정하면 그 다음부터 다시 값을 대입하기 시작한다. 그리고 혹시 모르니 결과값을 저장하는 습관을 기르도록하자.
.npy 형태로 저장한다. For permanent links you can use: https://ezgif.com/image-to-datauri?url=https://example.com/source-image.gif Output data URI code:Online image to Data URI conversion toolData URI is a method for embedding small images directly in your HTML or CSS code using base64 encoding without the need for additional image files. It's useful when you want to improve performance by reducing the number of HTTP requests needed to load a webpage or when you want to distribute a script/HTML page with some icons or other small images but prefer to keep it in a single file, or include images in email signatures. They can be used both in HTML, where the image data is placed inside the src attribute or in a CSS file as a background image. This tool lets you select one of both ways or just a raw data URI string without the additional code. All major browsers currently support data URI in a CSS background property. Please keep in mind it's usually not useful to embed anything larger than few kilobytes, as it will likely impact performance negatively because these images won't be cached by the browser if used in HTML and will increase CSS parsing time if used in CSS. If you have many small icons, consider using CSS sprites instead. But we won't set any hard limits for this tool; it's your call.
페이지 설정머리글바닥글PDF 권한 관리변환 설정변환 타입 프린트 레이아웃 사용 자바스크립트 제거 링크 제거 페이지 번호 추가 그레이 스케일 적용 자동 북마크 대기 시간 초 워터 마킹투명도 회전 각도 레이어 PDF 내용 위에 PDF 내용 아래
|