강재 결함 검측
8674 단어 machinelearningdatascience
강철.
강철은 현대에서 가장 중요한 건축 자재 중의 하나다.강철 구조물 은 자연 마모 와 인위적 마모 에 저항할 수 있다
이로 인해 이런 재료는 세계 각지에 없는 곳이 없다.강철 생산 효율을 높이기 위해 본 사례 연구는 도움이 될 것이다
결함을 식별하다.
평판강의 생산 과정은 특히 복잡하다.가열과 압연, 건조와 절단까지 몇 대의 기계가 편강을 실어 나르려고 할 때 편강에 접촉했다.
철강 회사
Severstal은 효율적인 철강 채굴과 생산 분야에서 선두를 달리고 있다.이 회사는 최근에 이 나라에서 가장 큰
산업 데이터 호수(industrial data lake)는 이전에 버려진 PB 데이터를 포함한다.
Severstal은 머신러닝을 통해 자동화 수준을 높이고 효율을 높이며 생산에서 높은 품질을 유지하고자 합니다.Severstal은 고주파 카메라의 이미지를 사용하여 결함 검출 알고리즘을 구동합니다.
상업 문제
제조업에서 주요 문제 중의 하나는 결함이 있는 생산 부품을 검측하는 것이다.감지된 고장 부품이 회수되다.그러나 검출되지 않은 상황에서 고객과 회사의 명예에 위험을 가져올 수 있다.
이 프로젝트의 목표는 강판 표면의 결함을 포지셔닝하고 분류함으로써 엔지니어가 알고리즘을 개선하는 데 도움을 주는 것이다.만약 성공한다면, 이것은 강철의 높은 제조 기준을 유지하는 데 도움이 될 것이다.
데이터 세트
이 데이터 세트는 세계 최고의 철강 제조업체 중 하나인 Servastal이 제공한다.이 데이터 세트에는 ImageId, ClassId, 인코딩 픽셀 등 세 가지 특징이 포함되어 있습니다.
에다
ClassId는 4가지 유형의 결함으로 구성되어 있으며, 한 파일에 단독으로 또는 동시에 나타날 수 있다
형상
열차 데이터에 7095개의 관측치가 집중되어 있다.값이 누락되지 않았습니다.
이미지에 여러 개의 불연속적인 결함 위치가 있어도 각 결함 종류의 세그먼트는 한 줄로 인코딩됩니다.이 부분들은 인코딩 픽셀의 형식으로 나타난다.
검사 불균형
우선 주어진 데이터의 균형이 맞는지 확인해야 한다.다음은 클래스 Id와 계수의 간단한 관계도를 보여 줍니다.
여기서 우리는 결함 유형 3이 그 어떤 다른 결함보다 주도적인 위치를 차지하는 것을 관찰했다.결함 2는 가장 적게 발생하는 결함이다.계급 불균형.
결함 중첩 검사
현재 우리는 입력 이미지가 여러 개의 결함을 동시에 포함하는지 검사할 것이다.
우리는 대다수의 관측이 단지 하나의 결함만을 가지고 있다는 것을 알 수 있다.어떤 것들은 두 가지 결함이 동시에 존재한다.세 개 혹은 세 개 이상의 결함이 동시에 나타난 관찰 결과가 없다.
픽셀에서 마스크로 인코딩
인코딩 픽셀은 결함이 있는 픽셀에 대한 정보입니다.그것이 포함하는 모드는 픽셀 인덱스 후와 계수입니다.픽셀 인덱스에서 픽셀 인덱스 + 계수 값까지의 픽셀 인덱스는 결함이 있는 모든 픽셀로 해석된다.결함이 있는 모든 픽셀을 인코딩할 때까지 이 모드를 반복합니다.
다음 함수는 인코딩된 픽셀을 마스크로 변환합니다.
def masks(encoded_pixels):
counts=[]
mask=np.zeros((256*1600), dtype=np.int8)
pre_mask=np.asarray([int(point) for point in encoded_pixels.split()])
for index,count in enumerate(pre_mask):
if(index%2!=0):
counts.append(count)
i=0
for index,pixel in enumerate(pre_mask):
if(index%2==0):
if(i==len(counts)):
break
mask[pixel:pixel+counts[i]]=1
i+=1
mask=np.reshape(mask,(1600,256))
mask=cv2.resize(mask,(256,1600)).T
return mask
소량의 데이터 점 그리기
여기서 입력 이미지와 대상 마스크의 모양을 시각화합니다.나는 결함을 쉽게 구분할 수 있도록 모든 종류의 결함에 서로 다른 색깔을 부여했다.
결함 유형 1
결함 유형 2
결함 유형 3
결함 유형 4
두 가지 결함이 동시에 존재하다
위의 가시화에서 우리는 결함 유형 4가 그 어떤 다른 결함보다 매우 뚜렷하다는 것을 관찰할 수 있다.1형 결함은 발견되기 어렵다.결함 유형 2와 3은 비슷해 보인다.불균형으로 인해 데이터가 불균형하면 모델은 2가지 결함을 3가지로 분류할 수 있다.
특징 공정
학급의 불균형이 심각하다.그리고 데이터 세트의 크기는 매우 작다.그래서 저는 이미지를 강화했습니다. 이렇게 하면 유형의 불균형을 보상하고 훈련 데이터의 양을 늘릴 수 있습니다.
클래스 3은 충분한 데이터가 있기 때문에 확장되지 않았다.1반과 2반의 수치가 5배로 늘었다.네 번째 종류의 사용 가능한 데이터량이 가장 적기 때문에, 나는 그것을 8배로 늘려 불균형을 보상했다.
이 단계에서 나는 이미지와 마스크를 강화한 다음에 이미지를 저장했다.다음 함수를 사용하여 마스크 값을 픽셀 인코딩으로 변환합니다.
def rle(img):
pixels= img.T.flatten()
pixels = np.concatenate([[0], pixels, [0]])
runs = np.where(pixels[1:] != pixels[:-1])[0]
runs[1::2] -= runs[::2]
return ' '.join(str(x) for x in runs)
전체 이미지 수는 7000개에서 13000개로 늘어났습니다.
모델링
성능 지표
나는 주사위 계수를 성능 지표로 선택했다.결과적으로 마스크는 양호한 정확도와 좋은 리콜율이 필요하기 때문이다.
손실 함수
나는 2진 교차 엔트로피를 손실 함수로 사용했다.이것은 특정한 클래스에 속하는 요소에 대한 통찰이 다른 클래스에 대한 결정에 영향을 주어서는 안 되기 때문이다. 왜냐하면 어떤 이미지는 여러 클래스를 포함할 수 있기 때문이다.
남은 Unet
Resunet은 딥 레슨 및 Unet에서 영감을 얻은 의미 분할 모델입니다.나머지 모델과 Unet 모델을 모두 사용하는 아키텍처
이런 조합은 우리에게 두 가지 좋은 점을 가져왔다. 1) 나머지 부대는 네트워크 훈련을 간소화할 것이다.2) 잉여 단원 내와 네트워크 저층과 고층 간의 도약 연결은 정보 전파를 촉진하고 퇴화하지 않기 때문에 파라미터가 훨씬 적은 신경 네트워크를 설계하는 것이 가능하지만 더욱 좋은 비교가능성을 실현할 수 있다.
의미 분할의 성능.
논문: https://arxiv.org/pdf/1711.10684.pdf
건축하다
이 네트워크는 인코딩, 브리지 연결, 디코딩 세 부분으로 구성되어 있다.1 첫 번째 부분은 입력 이미지를 압축 형식으로 인코딩합니다
진술하다.마지막 부분에서 이 표시들을
픽셀급 분류, 즉 의미 분할.이것
중간 부분은 마치 다리처럼 인코딩과
디코딩 경로.이 세 부분 다 나머지를 써요.
두 개의 3×3 볼륨 블록과 한 개의
ID 매핑.각 볼륨 블록은 BN 레이어를 포함합니다.
ReLU 활성화 및 볼륨 레이어신분.
연결 단원의 입력과 출력을 비추다.
결실
15개 시기 후 최대 손실은 0.0513을 기록한 후 최소치에 이르렀다.
Unet
이 구조는 두 개의 경로를 포함한다.첫 번째 경로는 압축 경로 (인코더) 로 그림의 상하문을 포착하는 데 사용된다.인코더는 권적층과 최대 연못층의 전통적인 창고일 뿐이다.두 번째 경로는 대칭 확장 경로(디코더라고도 부른다)로 전환 볼륨을 사용하여 정확한 위치를 정하는 데 사용된다.
따라서 모든 크기의 이미지를 수용할 수 있기 때문에 전체 볼륨 네트워크(FCN)입니다.
결실
23단계를 거친 후 검증 손실은 0.0125곳에서 최소치에 이르렀다.진실과 예측 마스크는 다음과 같다.
예측 마스크는 수동으로 표시된 마스크보다 정확합니다.
개선의 여지
새로운 의미 분할 모델을 세울 수 있는데 이를 차원 다자도 주의라고 부른다.이 모델은 Unet보다 더 좋은 결과를 얻을 수 있습니다.
논문: https://arxiv.org/abs/2005.10821
Reference
이 문제에 관하여(강재 결함 검측), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/vijethrai/steel-defect-detection-86i
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Severstal은 효율적인 철강 채굴과 생산 분야에서 선두를 달리고 있다.이 회사는 최근에 이 나라에서 가장 큰
산업 데이터 호수(industrial data lake)는 이전에 버려진 PB 데이터를 포함한다.
Severstal은 머신러닝을 통해 자동화 수준을 높이고 효율을 높이며 생산에서 높은 품질을 유지하고자 합니다.Severstal은 고주파 카메라의 이미지를 사용하여 결함 검출 알고리즘을 구동합니다.
상업 문제
제조업에서 주요 문제 중의 하나는 결함이 있는 생산 부품을 검측하는 것이다.감지된 고장 부품이 회수되다.그러나 검출되지 않은 상황에서 고객과 회사의 명예에 위험을 가져올 수 있다.
이 프로젝트의 목표는 강판 표면의 결함을 포지셔닝하고 분류함으로써 엔지니어가 알고리즘을 개선하는 데 도움을 주는 것이다.만약 성공한다면, 이것은 강철의 높은 제조 기준을 유지하는 데 도움이 될 것이다.
데이터 세트
이 데이터 세트는 세계 최고의 철강 제조업체 중 하나인 Servastal이 제공한다.이 데이터 세트에는 ImageId, ClassId, 인코딩 픽셀 등 세 가지 특징이 포함되어 있습니다.
에다
ClassId는 4가지 유형의 결함으로 구성되어 있으며, 한 파일에 단독으로 또는 동시에 나타날 수 있다
형상
열차 데이터에 7095개의 관측치가 집중되어 있다.값이 누락되지 않았습니다.
이미지에 여러 개의 불연속적인 결함 위치가 있어도 각 결함 종류의 세그먼트는 한 줄로 인코딩됩니다.이 부분들은 인코딩 픽셀의 형식으로 나타난다.
검사 불균형
우선 주어진 데이터의 균형이 맞는지 확인해야 한다.다음은 클래스 Id와 계수의 간단한 관계도를 보여 줍니다.
여기서 우리는 결함 유형 3이 그 어떤 다른 결함보다 주도적인 위치를 차지하는 것을 관찰했다.결함 2는 가장 적게 발생하는 결함이다.계급 불균형.
결함 중첩 검사
현재 우리는 입력 이미지가 여러 개의 결함을 동시에 포함하는지 검사할 것이다.
우리는 대다수의 관측이 단지 하나의 결함만을 가지고 있다는 것을 알 수 있다.어떤 것들은 두 가지 결함이 동시에 존재한다.세 개 혹은 세 개 이상의 결함이 동시에 나타난 관찰 결과가 없다.
픽셀에서 마스크로 인코딩
인코딩 픽셀은 결함이 있는 픽셀에 대한 정보입니다.그것이 포함하는 모드는 픽셀 인덱스 후와 계수입니다.픽셀 인덱스에서 픽셀 인덱스 + 계수 값까지의 픽셀 인덱스는 결함이 있는 모든 픽셀로 해석된다.결함이 있는 모든 픽셀을 인코딩할 때까지 이 모드를 반복합니다.
다음 함수는 인코딩된 픽셀을 마스크로 변환합니다.
def masks(encoded_pixels):
counts=[]
mask=np.zeros((256*1600), dtype=np.int8)
pre_mask=np.asarray([int(point) for point in encoded_pixels.split()])
for index,count in enumerate(pre_mask):
if(index%2!=0):
counts.append(count)
i=0
for index,pixel in enumerate(pre_mask):
if(index%2==0):
if(i==len(counts)):
break
mask[pixel:pixel+counts[i]]=1
i+=1
mask=np.reshape(mask,(1600,256))
mask=cv2.resize(mask,(256,1600)).T
return mask
소량의 데이터 점 그리기
여기서 입력 이미지와 대상 마스크의 모양을 시각화합니다.나는 결함을 쉽게 구분할 수 있도록 모든 종류의 결함에 서로 다른 색깔을 부여했다.
결함 유형 1
결함 유형 2
결함 유형 3
결함 유형 4
두 가지 결함이 동시에 존재하다
위의 가시화에서 우리는 결함 유형 4가 그 어떤 다른 결함보다 매우 뚜렷하다는 것을 관찰할 수 있다.1형 결함은 발견되기 어렵다.결함 유형 2와 3은 비슷해 보인다.불균형으로 인해 데이터가 불균형하면 모델은 2가지 결함을 3가지로 분류할 수 있다.
특징 공정
학급의 불균형이 심각하다.그리고 데이터 세트의 크기는 매우 작다.그래서 저는 이미지를 강화했습니다. 이렇게 하면 유형의 불균형을 보상하고 훈련 데이터의 양을 늘릴 수 있습니다.
클래스 3은 충분한 데이터가 있기 때문에 확장되지 않았다.1반과 2반의 수치가 5배로 늘었다.네 번째 종류의 사용 가능한 데이터량이 가장 적기 때문에, 나는 그것을 8배로 늘려 불균형을 보상했다.
이 단계에서 나는 이미지와 마스크를 강화한 다음에 이미지를 저장했다.다음 함수를 사용하여 마스크 값을 픽셀 인코딩으로 변환합니다.
def rle(img):
pixels= img.T.flatten()
pixels = np.concatenate([[0], pixels, [0]])
runs = np.where(pixels[1:] != pixels[:-1])[0]
runs[1::2] -= runs[::2]
return ' '.join(str(x) for x in runs)
전체 이미지 수는 7000개에서 13000개로 늘어났습니다.
모델링
성능 지표
나는 주사위 계수를 성능 지표로 선택했다.결과적으로 마스크는 양호한 정확도와 좋은 리콜율이 필요하기 때문이다.
손실 함수
나는 2진 교차 엔트로피를 손실 함수로 사용했다.이것은 특정한 클래스에 속하는 요소에 대한 통찰이 다른 클래스에 대한 결정에 영향을 주어서는 안 되기 때문이다. 왜냐하면 어떤 이미지는 여러 클래스를 포함할 수 있기 때문이다.
남은 Unet
Resunet은 딥 레슨 및 Unet에서 영감을 얻은 의미 분할 모델입니다.나머지 모델과 Unet 모델을 모두 사용하는 아키텍처
이런 조합은 우리에게 두 가지 좋은 점을 가져왔다. 1) 나머지 부대는 네트워크 훈련을 간소화할 것이다.2) 잉여 단원 내와 네트워크 저층과 고층 간의 도약 연결은 정보 전파를 촉진하고 퇴화하지 않기 때문에 파라미터가 훨씬 적은 신경 네트워크를 설계하는 것이 가능하지만 더욱 좋은 비교가능성을 실현할 수 있다.
의미 분할의 성능.
논문: https://arxiv.org/pdf/1711.10684.pdf
건축하다
이 네트워크는 인코딩, 브리지 연결, 디코딩 세 부분으로 구성되어 있다.1 첫 번째 부분은 입력 이미지를 압축 형식으로 인코딩합니다
진술하다.마지막 부분에서 이 표시들을
픽셀급 분류, 즉 의미 분할.이것
중간 부분은 마치 다리처럼 인코딩과
디코딩 경로.이 세 부분 다 나머지를 써요.
두 개의 3×3 볼륨 블록과 한 개의
ID 매핑.각 볼륨 블록은 BN 레이어를 포함합니다.
ReLU 활성화 및 볼륨 레이어신분.
연결 단원의 입력과 출력을 비추다.
결실
15개 시기 후 최대 손실은 0.0513을 기록한 후 최소치에 이르렀다.
Unet
이 구조는 두 개의 경로를 포함한다.첫 번째 경로는 압축 경로 (인코더) 로 그림의 상하문을 포착하는 데 사용된다.인코더는 권적층과 최대 연못층의 전통적인 창고일 뿐이다.두 번째 경로는 대칭 확장 경로(디코더라고도 부른다)로 전환 볼륨을 사용하여 정확한 위치를 정하는 데 사용된다.
따라서 모든 크기의 이미지를 수용할 수 있기 때문에 전체 볼륨 네트워크(FCN)입니다.
결실
23단계를 거친 후 검증 손실은 0.0125곳에서 최소치에 이르렀다.진실과 예측 마스크는 다음과 같다.
예측 마스크는 수동으로 표시된 마스크보다 정확합니다.
개선의 여지
새로운 의미 분할 모델을 세울 수 있는데 이를 차원 다자도 주의라고 부른다.이 모델은 Unet보다 더 좋은 결과를 얻을 수 있습니다.
논문: https://arxiv.org/abs/2005.10821
Reference
이 문제에 관하여(강재 결함 검측), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/vijethrai/steel-defect-detection-86i
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 데이터 세트는 세계 최고의 철강 제조업체 중 하나인 Servastal이 제공한다.이 데이터 세트에는 ImageId, ClassId, 인코딩 픽셀 등 세 가지 특징이 포함되어 있습니다.
에다
ClassId는 4가지 유형의 결함으로 구성되어 있으며, 한 파일에 단독으로 또는 동시에 나타날 수 있다
형상
열차 데이터에 7095개의 관측치가 집중되어 있다.값이 누락되지 않았습니다.
이미지에 여러 개의 불연속적인 결함 위치가 있어도 각 결함 종류의 세그먼트는 한 줄로 인코딩됩니다.이 부분들은 인코딩 픽셀의 형식으로 나타난다.
검사 불균형
우선 주어진 데이터의 균형이 맞는지 확인해야 한다.다음은 클래스 Id와 계수의 간단한 관계도를 보여 줍니다.
여기서 우리는 결함 유형 3이 그 어떤 다른 결함보다 주도적인 위치를 차지하는 것을 관찰했다.결함 2는 가장 적게 발생하는 결함이다.계급 불균형.
결함 중첩 검사
현재 우리는 입력 이미지가 여러 개의 결함을 동시에 포함하는지 검사할 것이다.
우리는 대다수의 관측이 단지 하나의 결함만을 가지고 있다는 것을 알 수 있다.어떤 것들은 두 가지 결함이 동시에 존재한다.세 개 혹은 세 개 이상의 결함이 동시에 나타난 관찰 결과가 없다.
픽셀에서 마스크로 인코딩
인코딩 픽셀은 결함이 있는 픽셀에 대한 정보입니다.그것이 포함하는 모드는 픽셀 인덱스 후와 계수입니다.픽셀 인덱스에서 픽셀 인덱스 + 계수 값까지의 픽셀 인덱스는 결함이 있는 모든 픽셀로 해석된다.결함이 있는 모든 픽셀을 인코딩할 때까지 이 모드를 반복합니다.
다음 함수는 인코딩된 픽셀을 마스크로 변환합니다.
def masks(encoded_pixels):
counts=[]
mask=np.zeros((256*1600), dtype=np.int8)
pre_mask=np.asarray([int(point) for point in encoded_pixels.split()])
for index,count in enumerate(pre_mask):
if(index%2!=0):
counts.append(count)
i=0
for index,pixel in enumerate(pre_mask):
if(index%2==0):
if(i==len(counts)):
break
mask[pixel:pixel+counts[i]]=1
i+=1
mask=np.reshape(mask,(1600,256))
mask=cv2.resize(mask,(256,1600)).T
return mask
소량의 데이터 점 그리기
여기서 입력 이미지와 대상 마스크의 모양을 시각화합니다.나는 결함을 쉽게 구분할 수 있도록 모든 종류의 결함에 서로 다른 색깔을 부여했다.
결함 유형 1
결함 유형 2
결함 유형 3
결함 유형 4
두 가지 결함이 동시에 존재하다
위의 가시화에서 우리는 결함 유형 4가 그 어떤 다른 결함보다 매우 뚜렷하다는 것을 관찰할 수 있다.1형 결함은 발견되기 어렵다.결함 유형 2와 3은 비슷해 보인다.불균형으로 인해 데이터가 불균형하면 모델은 2가지 결함을 3가지로 분류할 수 있다.
특징 공정
학급의 불균형이 심각하다.그리고 데이터 세트의 크기는 매우 작다.그래서 저는 이미지를 강화했습니다. 이렇게 하면 유형의 불균형을 보상하고 훈련 데이터의 양을 늘릴 수 있습니다.
클래스 3은 충분한 데이터가 있기 때문에 확장되지 않았다.1반과 2반의 수치가 5배로 늘었다.네 번째 종류의 사용 가능한 데이터량이 가장 적기 때문에, 나는 그것을 8배로 늘려 불균형을 보상했다.
이 단계에서 나는 이미지와 마스크를 강화한 다음에 이미지를 저장했다.다음 함수를 사용하여 마스크 값을 픽셀 인코딩으로 변환합니다.
def rle(img):
pixels= img.T.flatten()
pixels = np.concatenate([[0], pixels, [0]])
runs = np.where(pixels[1:] != pixels[:-1])[0]
runs[1::2] -= runs[::2]
return ' '.join(str(x) for x in runs)
전체 이미지 수는 7000개에서 13000개로 늘어났습니다.
모델링
성능 지표
나는 주사위 계수를 성능 지표로 선택했다.결과적으로 마스크는 양호한 정확도와 좋은 리콜율이 필요하기 때문이다.
손실 함수
나는 2진 교차 엔트로피를 손실 함수로 사용했다.이것은 특정한 클래스에 속하는 요소에 대한 통찰이 다른 클래스에 대한 결정에 영향을 주어서는 안 되기 때문이다. 왜냐하면 어떤 이미지는 여러 클래스를 포함할 수 있기 때문이다.
남은 Unet
Resunet은 딥 레슨 및 Unet에서 영감을 얻은 의미 분할 모델입니다.나머지 모델과 Unet 모델을 모두 사용하는 아키텍처
이런 조합은 우리에게 두 가지 좋은 점을 가져왔다. 1) 나머지 부대는 네트워크 훈련을 간소화할 것이다.2) 잉여 단원 내와 네트워크 저층과 고층 간의 도약 연결은 정보 전파를 촉진하고 퇴화하지 않기 때문에 파라미터가 훨씬 적은 신경 네트워크를 설계하는 것이 가능하지만 더욱 좋은 비교가능성을 실현할 수 있다.
의미 분할의 성능.
논문: https://arxiv.org/pdf/1711.10684.pdf
건축하다
이 네트워크는 인코딩, 브리지 연결, 디코딩 세 부분으로 구성되어 있다.1 첫 번째 부분은 입력 이미지를 압축 형식으로 인코딩합니다
진술하다.마지막 부분에서 이 표시들을
픽셀급 분류, 즉 의미 분할.이것
중간 부분은 마치 다리처럼 인코딩과
디코딩 경로.이 세 부분 다 나머지를 써요.
두 개의 3×3 볼륨 블록과 한 개의
ID 매핑.각 볼륨 블록은 BN 레이어를 포함합니다.
ReLU 활성화 및 볼륨 레이어신분.
연결 단원의 입력과 출력을 비추다.
결실
15개 시기 후 최대 손실은 0.0513을 기록한 후 최소치에 이르렀다.
Unet
이 구조는 두 개의 경로를 포함한다.첫 번째 경로는 압축 경로 (인코더) 로 그림의 상하문을 포착하는 데 사용된다.인코더는 권적층과 최대 연못층의 전통적인 창고일 뿐이다.두 번째 경로는 대칭 확장 경로(디코더라고도 부른다)로 전환 볼륨을 사용하여 정확한 위치를 정하는 데 사용된다.
따라서 모든 크기의 이미지를 수용할 수 있기 때문에 전체 볼륨 네트워크(FCN)입니다.
결실
23단계를 거친 후 검증 손실은 0.0125곳에서 최소치에 이르렀다.진실과 예측 마스크는 다음과 같다.
예측 마스크는 수동으로 표시된 마스크보다 정확합니다.
개선의 여지
새로운 의미 분할 모델을 세울 수 있는데 이를 차원 다자도 주의라고 부른다.이 모델은 Unet보다 더 좋은 결과를 얻을 수 있습니다.
논문: https://arxiv.org/abs/2005.10821
Reference
이 문제에 관하여(강재 결함 검측), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/vijethrai/steel-defect-detection-86i
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
def masks(encoded_pixels):
counts=[]
mask=np.zeros((256*1600), dtype=np.int8)
pre_mask=np.asarray([int(point) for point in encoded_pixels.split()])
for index,count in enumerate(pre_mask):
if(index%2!=0):
counts.append(count)
i=0
for index,pixel in enumerate(pre_mask):
if(index%2==0):
if(i==len(counts)):
break
mask[pixel:pixel+counts[i]]=1
i+=1
mask=np.reshape(mask,(1600,256))
mask=cv2.resize(mask,(256,1600)).T
return mask
학급의 불균형이 심각하다.그리고 데이터 세트의 크기는 매우 작다.그래서 저는 이미지를 강화했습니다. 이렇게 하면 유형의 불균형을 보상하고 훈련 데이터의 양을 늘릴 수 있습니다.
클래스 3은 충분한 데이터가 있기 때문에 확장되지 않았다.1반과 2반의 수치가 5배로 늘었다.네 번째 종류의 사용 가능한 데이터량이 가장 적기 때문에, 나는 그것을 8배로 늘려 불균형을 보상했다.
이 단계에서 나는 이미지와 마스크를 강화한 다음에 이미지를 저장했다.다음 함수를 사용하여 마스크 값을 픽셀 인코딩으로 변환합니다.
def rle(img):
pixels= img.T.flatten()
pixels = np.concatenate([[0], pixels, [0]])
runs = np.where(pixels[1:] != pixels[:-1])[0]
runs[1::2] -= runs[::2]
return ' '.join(str(x) for x in runs)
전체 이미지 수는 7000개에서 13000개로 늘어났습니다.모델링
성능 지표
나는 주사위 계수를 성능 지표로 선택했다.결과적으로 마스크는 양호한 정확도와 좋은 리콜율이 필요하기 때문이다.
손실 함수
나는 2진 교차 엔트로피를 손실 함수로 사용했다.이것은 특정한 클래스에 속하는 요소에 대한 통찰이 다른 클래스에 대한 결정에 영향을 주어서는 안 되기 때문이다. 왜냐하면 어떤 이미지는 여러 클래스를 포함할 수 있기 때문이다.
남은 Unet
Resunet은 딥 레슨 및 Unet에서 영감을 얻은 의미 분할 모델입니다.나머지 모델과 Unet 모델을 모두 사용하는 아키텍처
이런 조합은 우리에게 두 가지 좋은 점을 가져왔다. 1) 나머지 부대는 네트워크 훈련을 간소화할 것이다.2) 잉여 단원 내와 네트워크 저층과 고층 간의 도약 연결은 정보 전파를 촉진하고 퇴화하지 않기 때문에 파라미터가 훨씬 적은 신경 네트워크를 설계하는 것이 가능하지만 더욱 좋은 비교가능성을 실현할 수 있다.
의미 분할의 성능.
논문: https://arxiv.org/pdf/1711.10684.pdf
건축하다
이 네트워크는 인코딩, 브리지 연결, 디코딩 세 부분으로 구성되어 있다.1 첫 번째 부분은 입력 이미지를 압축 형식으로 인코딩합니다
진술하다.마지막 부분에서 이 표시들을
픽셀급 분류, 즉 의미 분할.이것
중간 부분은 마치 다리처럼 인코딩과
디코딩 경로.이 세 부분 다 나머지를 써요.
두 개의 3×3 볼륨 블록과 한 개의
ID 매핑.각 볼륨 블록은 BN 레이어를 포함합니다.
ReLU 활성화 및 볼륨 레이어신분.
연결 단원의 입력과 출력을 비추다.
결실
15개 시기 후 최대 손실은 0.0513을 기록한 후 최소치에 이르렀다.
Unet
이 구조는 두 개의 경로를 포함한다.첫 번째 경로는 압축 경로 (인코더) 로 그림의 상하문을 포착하는 데 사용된다.인코더는 권적층과 최대 연못층의 전통적인 창고일 뿐이다.두 번째 경로는 대칭 확장 경로(디코더라고도 부른다)로 전환 볼륨을 사용하여 정확한 위치를 정하는 데 사용된다.
따라서 모든 크기의 이미지를 수용할 수 있기 때문에 전체 볼륨 네트워크(FCN)입니다.
결실
23단계를 거친 후 검증 손실은 0.0125곳에서 최소치에 이르렀다.진실과 예측 마스크는 다음과 같다.
예측 마스크는 수동으로 표시된 마스크보다 정확합니다.
개선의 여지
새로운 의미 분할 모델을 세울 수 있는데 이를 차원 다자도 주의라고 부른다.이 모델은 Unet보다 더 좋은 결과를 얻을 수 있습니다.
논문: https://arxiv.org/abs/2005.10821
Reference
이 문제에 관하여(강재 결함 검측), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/vijethrai/steel-defect-detection-86i
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(강재 결함 검측), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vijethrai/steel-defect-detection-86i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)