주요 콘텐츠

segmentCells2D

Cellpose를 사용하여 2차원 영상 분할

R2023b 이후

설명

labels = segmentCells2D(cp,im)cellpose 객체 cp로 지정된 모델과 옵션을 사용하여 2차원 숫자형 명암 영상을 분할합니다.

예제

labels = segmentCells2D(cp,im,Name=Value)는 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어, im의 세포 지름이 약 50픽셀인 경우 ImageCellDiameter=50을 지정합니다.

참고

이 기능을 사용하려면 Deep Learning Toolbox™, Computer Vision Toolbox™ 및 Medical Imaging Toolbox™ Interface for Cellpose Library가 필요합니다. 애드온 탐색기에서 Medical Imaging Toolbox Interface for Cellpose Library를 설치할 수 있습니다. 애드온 설치에 대한 자세한 내용은 애드온을 받고 관리하기 항목을 참조하십시오.

예제

모두 축소

2차원 명암 영상을 불러옵니다.

img = imread("AT3_1m4_01.tif");
imshow(img)

Figure contains an axes object. The axes object contains an object of type image.

세포의 대략적인 지름(단위: 픽셀)을 지정합니다.

averageCellDiameter = 56;

cellpose 객체를 만듭니다. 기본적으로 이 객체는 Cellpose Library의 cyto2 모델을 사용합니다.

cp = cellpose(Model="cyto2");

평균 세포 지름을 지정하여 영상을 분할합니다.

labels = segmentCells2D(cp,img,ImageCellDiameter=averageCellDiameter);

레이블을 원본 영상에 겹쳐지게 표시합니다.

B = labeloverlay(img,labels);
imshow(B)

Figure contains an axes object. The axes object contains an object of type image.

입력 인수

모두 축소

Cellpose 모델 구성으로, cellpose 객체로 지정됩니다. cellpose 객체 속성은 사용할 모델을 지정하고 모델 앙상블과 GPU 사용 여부와 같은 옵션을 정의합니다.

분할할 명암 영상으로, 숫자형 행렬로 지정됩니다. Cellpose Library는 영상을 분할하기 전에 im의 값을 single 데이터형으로 변환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

이름-값 인수

모두 축소

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: segmentCells2D(cp,im,ImageCellDiameter=50)im의 세포 지름을 약 50픽셀로 지정합니다.

보조 채널 영상으로, im과 크기와 데이터형이 같은 2차원 숫자형 행렬로 지정됩니다. 모델이 핵 채널 영상을 받는 경우 선택적으로 이 인수를 지정할 수 있습니다. 이 값을 지정하지 않으면 함수는 im과 같은 크기의 0으로 구성된 행렬을 모델에 전달합니다. Cellpose Library는 보조 채널 영상을 single 데이터형으로 변환합니다. 이 인수는 Cellpose Library의 chan2 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

입력 영상 im의 세포 지름으로, 양의 숫자형 스칼라(단위: 픽셀)로 지정됩니다. 기본적으로 함수는 im이 훈련 데이터 세트와 같은 크기의 세포를 포함하고 cpTrainingCellDiameter 속성으로 지정된 지름을 사용한다고 가정합니다. 이 인수는 Cellpose Library의 diameter 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

흐름 오차 임계값으로, 양의 숫자형 스칼라로 지정됩니다. 이 인수는 신경망에서 출력된 흐름 필드와 예측된 레이블에서 복원된 흐름 필드 사이의 허용 가능한 오차를 지정합니다. 0.13 사이의 값이 대부분의 영상에 적합합니다. 이 인수는 Cellpose Library의 flow_threshold 파라미터에 대응됩니다.

  • 이 값을 높이면 모델이 더 많은 세포를 검출할 수 있지만, 세포 간의 경계가 덜 정확할 수 있습니다.

  • 이 값을 낮추면 모델이 더 깔끔한 경계를 생성할 수 있지만, 일부 세포를 놓칠 수 있습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

세포 확률 임계값으로, 숫자형 스칼라로 지정됩니다. 모델은 이 임계값을 신경망 출력값에 적용하고, 해당 임계값보다 높은 픽셀을 레이블 예측에 포함합니다. -66 사이의 값이 대부분의 영상에 적합합니다. 이 인수는 Cellpose Library의 cellprob_threshold 파라미터에 대응됩니다.

  • 이 값을 높이면 모델이 더 깔끔한 경계를 생성할 수 있지만, 일부 세포를 놓칠 수 있습니다.

  • 이 값을 낮추면 모델이 더 많은 세포를 검출할 수 있지만, 세포 간의 경계가 덜 정확할 수 있습니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

입력 영상 정규화 여부로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. true로 설정하면 함수는 입력 영상과 보조 채널 영상(지정된 경우)의 크기를 [0, 1] 범위로 다시 스케일링합니다. 함수는 각 영상의 명암 값 중 하위 1%를 0으로 매핑하고 상위 1%를 1로 매핑합니다. 이 인수는 Cellpose Library의 normalize 파라미터에 대응됩니다.

데이터형: logical

입력 영상을 타일 형식으로 표시할지 여부로, 숫자형 또는 논리값 0(false) 또는 1(true)로 지정됩니다. true로 설정되면 함수는 입력 영상을 타일 형식으로 된 224×224 픽셀 영역에 표시합니다. 타일 형식의 영상을 분할할 경우 GPU 메모리는 덜 필요하지만 처리 시간이 더 길어집니다. 타일 형식 배열 작업은 CPU 메모리 요구 사항에 영향을 주지 않습니다. 이 인수는 Cellpose Library의 tile 파라미터에 대응됩니다.

데이터형: logical

타일 간 중첩으로, 양의 숫자형 스칼라로 지정됩니다. 이 인수는 인접한 타일 간에 중첩되는 비율을 지정합니다. 중첩되는 영역의 각 픽셀에 대해 함수는 타일 전체의 결과에 대한 평균을 구하여 해당 픽셀의 최종 값을 얻습니다. 0.050.5 사이의 값이 대부분의 영상에 적합합니다. 이 인수는 Cellpose Library의 tile_overlap 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

영상 증강 여부로, 숫자형 또는 논리값 0(false) 또는 1(true)로 지정됩니다. true로 설정하면 함수는 Tiletrue로 설정하고 TileOverlap0.5로 설정하여 50% 중첩되는 타일을 생성합니다. 함수는 각 타일의 여러 복사본을 세로와 가로로 뒤집어 모든 방향에서의 결과에 대한 평균을 구합니다. 증강은 일반적으로 정확도는 높이지만, 처리 속도를 떨어뜨립니다. 이 인수는 Cellpose Library의 augment 파라미터에 대응됩니다.

데이터형: logical

GPU 배치(batch)의 크기로, 양의 정수로 지정됩니다. 이 인수는 Tiletrue로 설정한 상태에서 GPU에서 영상을 처리할 때만 효력이 있습니다. 배치 크기는 배치별 타일 개수를 지정합니다. 배치 크기를 늘리면 속도는 빨라지지만, 더 많은 메모리가 필요합니다. 이 인수는 Cellpose Library의 batchsize 파라미터에 대응됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

영상을 그 원래 크기에서 후처리할지 여부로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. true로 설정하면 함수는 쌍선형 보간을 사용하여 후처리 전에 입력 영상의 크기에 맞게 신경망 출력값의 크기를 조정합니다. ImageCellDiameter가 모델이 검출할 수 있는 세포 지름보다 클 경우 후처리 전에 크기를 조정하면 경계를 더 매끄럽게 만들 수 있습니다. false로 설정하면 함수는 후처리 후에 최근접이웃 보간을 사용하여 입력 크기에 맞게 레이블 영상의 크기를 조정합니다. 이 인수는 Cellpose Library의 no_resample 파라미터와 반비례 관계에 있습니다.

데이터형: logical

출력 인수

모두 축소

분할 레이블 영상으로, double 데이터형의 숫자형 행렬로 반환됩니다. 픽셀 값은 모델에서 반환되는 레이블에 매핑됩니다. 예를 들어, 모델이 세포 두 개를 검출하는 경우 labels의 픽셀 값 범위는 [0, 2]입니다. 여기서 0은 배경 픽셀 값이고 첫 번째 세포의 픽셀 값은 1, 두 번째 세포의 픽셀 값은 2입니다.

참고 문헌

[1] Stringer, Carsen, Tim Wang, Michalis Michaelos, and Marius Pachitariu. “Cellpose: A Generalist Algorithm for Cellular Segmentation.” Nature Methods 18, no. 1 (January 2021): 100–106. https://doi.org/10.1038/s41592-020-01018-x.

[2] Pachitariu, Marius, and Carsen Stringer. “Cellpose 2.0: How to Train Your Own Model.” Nature Methods 19, no. 12 (December 2022): 1634–41. https://doi.org/10.1038/s41592-022-01663-4.

버전 내역

R2023b에 개발됨