KR20230155470A - 육상 기반 양어장들에 대한 ai 기반 사료공급 시스템 및 방법 - Google Patents

육상 기반 양어장들에 대한 ai 기반 사료공급 시스템 및 방법 Download PDF

Info

Publication number
KR20230155470A
KR20230155470A KR1020237031670A KR20237031670A KR20230155470A KR 20230155470 A KR20230155470 A KR 20230155470A KR 1020237031670 A KR1020237031670 A KR 1020237031670A KR 20237031670 A KR20237031670 A KR 20237031670A KR 20230155470 A KR20230155470 A KR 20230155470A
Authority
KR
South Korea
Prior art keywords
feed
pellet
trajectories
roi
trajectory
Prior art date
Application number
KR1020237031670A
Other languages
English (en)
Inventor
윌리엄 스톤
페드람 아디비
Original Assignee
릴데이타 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 릴데이타 인크. filed Critical 릴데이타 인크.
Publication of KR20230155470A publication Critical patent/KR20230155470A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K61/00Culture of aquatic animals
    • A01K61/80Feeding devices
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K61/00Culture of aquatic animals
    • A01K61/80Feeding devices
    • A01K61/85Feeding devices for use with aquaria
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K61/00Culture of aquatic animals
    • A01K61/10Culture of aquatic animals of fish
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; AVICULTURE; APICULTURE; PISCICULTURE; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K61/00Culture of aquatic animals
    • A01K61/90Sorting, grading, counting or marking live aquatic animals, e.g. sex determination
    • A01K61/95Sorting, grading, counting or marking live aquatic animals, e.g. sex determination specially adapted for fish
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A40/00Adaptation technologies in agriculture, forestry, livestock or agroalimentary production
    • Y02A40/80Adaptation technologies in agriculture, forestry, livestock or agroalimentary production in fisheries management
    • Y02A40/81Aquaculture, e.g. of fish

Landscapes

  • Life Sciences & Earth Sciences (AREA)
  • Environmental Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Zoology (AREA)
  • Marine Sciences & Fisheries (AREA)
  • Animal Husbandry (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Farming Of Fish And Shellfish (AREA)
  • Image Analysis (AREA)

Abstract

육상-기반 양어장에서 사료공급 모니터링을 위한 AI-기반 시스템 및 방법들에 대한 실시예들이 설명되며, 여기서 시스템은, 각각의 이미지가 획득될 때 피드 카메라의 시야를 가로지르는 물체들의 이미지들을 갖는 비디오 피드를 캡처하기 위해 배출 파이프에 장착되는 피드 카메라; 및 적어도 먹지 않은 사료 펠릿들을 카운트하기 위해 관심 영역(ROI) 제안 모듈, ROI 분류 모듈, ROI 추적 모듈, 및 궤적 분류 모듈을 이용하는 펠릿-추적 알고리즘을 실행하는 특수-목적 컴퓨터를 포함할 수 있다. 적어도 하나의 실시예에서, 물체 인핸서는, 획득된 이미지들 내의 물체들이 정의가능 주변부를 갖도록 배경을 제공하기 위해 카메라 반대편에 그리고 카메라의 시야 내에서 배출 파이프에 장착될 수 있다.

Description

육상 기반 양어장들에 대한 AI 기반 사료공급 시스템 및 방법
관련 특허 출원에 대한 상호-참조
본 출원은 2021년 03월 07일자로 출원된 미국 가특허 출원 일련번호 제63/157,759호의 이익을 주장하며, 이로써 미국 가특허 출원 일련번호 제63/157,759호의 전체 내용은 그 전체가 본원에 포함된다.
기술분야
전반적으로 인공 지능(artificial intelligence; AI)을 사용하여 양어장에서 자동 사료공급을 위한 시스템들 및 방법들에 관한 다양한 실시예들에 본원에서 설명된다.
다음의 단락들은 본 개시에 대한 배경기술로서 제공된다. 그러나, 이들은, 여기서 논의되는 임의의 것이 종래 기술이거나 또는 당업자들의 지식의 일부라는 것의 인정이 아니다.
육상-기반 양식은 물고기 생산에 대한 새로운 접근방식이다. 바다에서 물고기의 자연 서식지를 사용하고 바다-기반 가두리들에서 물고기를 키우는 것이 아니라, 육상-기반 양식은 탱크들 내에 그들의 자연 환경을 재현함으로써 물고기를 육상으로 가져온다. 시스템은 지속적으로 물을 순환시키고 필터링하며, 물고기의 건강과 성장을 보장하기 위한 환경 파라미터들의 최적 밸런스를 획득하려고 시도한다. 이러한 폐쇄형 시스템 접근방식은, 오염, 환경적 최적화, 기생충들, 포식자들 및 탈출들과 관련된 문제들을 제거하는 것을 포함하여 다수의 이점들을 갖는다. 또한, 이는 농장들이 소비자 시장들에 더 가까워지는 것을 가능하게 하여 감소된 운송 거리 및 그에 따라 감소된 배출들을 가져온다.
이러한 육상-기반 시스템들을 생성하는 데 필요한 복잡성에도 불구하고, 사료공급 방식은 덜 발전된 상태로 남아 있다. 농장마다 사료공급 방식들이 상이하지만, 모든 육상-기반 농장 운영자들은 낭비되는 사료 레벨들의 이해를 유지하기 위해 최선을 다한다. 다수의 운영자들이 기준선으로서 폐기물의 정성적 모니터링을 사용하지만(매우 부정확함), 반면 다른 운영자들은 필터들에서 캐치되는 낭비되는 사료 펠릿들을 물리적으로 카운트한다(부정확하고, 이산적이며, 및/또는 시간 소모적임). 이러한 방법들을 통해 인구집단의 식욕을 측정한 이후에, 운영자들은 낭비되는 사료에 대한 그들의 믿음에 기초하여 기계적 사료공급 시스템들을 조정한다. 전술한 방법들의 비효율성들은 폐기물이 잘못 판단될 때 농장 운영자들에 대해 2개의 명백한 문제들을 야기한다: (1) 운영자들이 물고기에게 사료를 너무 많이 주어 상당한 양의 물고기 사료를 낭비할 수 있으며, 이는 비용을 증가시키고 환경에 부정적인 영향을 야기할 수 있거나; 또는 (2) 운영자들이 물고기 집단에 사료를 덜 주어 성장을 감소시키고 그에 따라 수익이 실현되지 않게 한다. 마지막으로, 사료 폐기물의 지속적인 역학은 환경 및 수질 파라미터들의 변동에 기여하여 물고기 및 여과 시스템들에 스트레스를 준다.
자동화된 사료공급 기술들을 개발하는 데에는 많은 어려움이 존재한다. 아마도 가장 주목할 만한 점은 정밀도의 핵심적인 중요성일 것이다. 오차의 작은 마진들이 상당한 낭비 또는 기아의 사례들을 야기할 수 있다. 바다-기반 섹터에서, 몇몇 해법들이 제안되었지만, 이들은 모두, 둘 모두가 폐기물의 대략적인 추정들만을 제공하는 시간적 인스턴스 및 공간의 일부 일관되지 않은 단면의 펠릿 강도 또는 정확한 측정을 사용함으로써 이러한 현실을 무시한다. 또한, 정밀도를 증가시키려고 시도한 임의의 방법은 증가된 계산 자원들을 활용함으로써 이루어지며, 이는 산업적으로 실현가능한 것을 이상으로 비용을 부풀린다.
이상에서 설명된 과제들 및/또는 단점들을 해결하는 양어장에서의 자동화된 사료공급을 위한 시스템 및 방법에 대한 필요성이 존재한다.
본원의 교시들에 따른 양어장에서 AI-기반 사료공급을 위한 시스템과 방법, 및 이와 함께 사용하기 위한 컴퓨터 제품들의 의 다양한 실시예들이 제공된다.
본 발명의 일 측면에 따르면, 물고기를 포함하는 탱크를 갖는 육상-기반 양어장에서 사료공급 모니터링을 위한 시스템이 개시되며, 상기 시스템은: 상기 탱크에 결합된 배출 파이프에 고정되는 피드 카메라로서, 먹지 않은 사료 펠릿들 및 비-펠릿 물체들이 상기 배출 파이프를 통해 출구 포트로 흐르며, 상기 피드 카메라는, 각각의 이미지가 획득될 때 상기 피드 카메라의 시야를 가로지르는 물체들을 포함하는 상기 배출 파이프의 내부의 이미지들을 포함하는 비디오 피드를 캡처하도록 구성되며, 상기 물체들은 상기 먹지 않은 사료 펠릿들 및 상기 비-펠릿 물체들을 포함하는, 상기 피드 카메라; 상기 피드 카메라와 물체 인핸서(object enhancer) 사이를 통과하며 상기 비디오 피드의 적어도 하나의 획득된 이미지에 캡처되는 물체들이 상기 적어도 하나의 획득된 이미지에서 정의가능 주변부를 갖도록 상기 피드 카메라에 대한 배경을 제공하기 위해 상기 물체 인핸서가 상기 피드 카메라의 시야 내에 그리고 상기 피드 카메라 반대편에 있도록 상기 배출 파이프에 장착되는 상기 물체 인핸서; 적어도 하나의 프로세서, 및 실행될 때 상기 적어도 하나의 프로세서가 다음의 단계들을 수행하게 하는 저장된 명령어들을 갖는 비-일시적인 컴퓨터-판독가능 저장 매체를 포함하는 컴퓨팅 디바이스를 포함하며, 상기 단계들은, 주어진 시간 간격 동안 상기 비디오 피드로부터 몇몇 이미지들을 획득하는 단계; 각각 상기 이미지들 내의 고유 물체들에 대응하는 후보 관심 영역(region of interest; ROI)들을 획득하기 위해 상기 이미지들을 사전프로세싱하는 단계로서, 상기 물체들은 잠재적으로 사료 펠릿들인, 단계; 상기 후보 ROI에 대응하는 상기 물체가 사료 펠릿 클래스에 속할 확률을 나타내는 펠릿성 스코어(pelletness score)를 획득하기 위해 상기 후보 ROI들에 대해 분류를 수행하는 단계; 유지된 후보 ROI들이 상기 사료 펠릿 클래스에 속할 가능성이 더 높을 가능성에 기초하여 상기 후보 ROI들을 유지할지 여부를 결정하는 단계; 상기 유지된 후보 ROI들의 각각을 궤적들에 할당하는 단계; 상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하는 단계; 및 상기 펠릿 궤적들에 기초하여 실시간으로 펠릿 카운트를 생성하는 단계로서, 상기 펠릿 카운트는 상기 탱크에서 상기 물고기에 의해 소비되지 않은 상기 먹지 않은 사료 펠릿들의 미리 결정된 퍼센트를 나타내는, 단계를 포함한다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는 상기 펠릿 카운트를 상기 양어장으로 전송하도록 더 구성되며, 상기 펠릿 카운트는 적어도 부분적으로 상기 펠릿 카운트에 기초하여 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 물고기 사료공급 기계에 의해 사용된다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 상기 펠릿 카운트에 기초하여 제어 신호를 생성하고 상기 제어 신호를 상기 양어장의 물고기 사료공급기 기계로 전송하도록 더 구성된다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, 상기 시간 간격에서 상기 먹지 않은 사료 펠릿들의 그래디언트(gradient)들을 결정하고, 상기 그래디언트들이 그래디언트 임계치보다 더 클 때 경고를 생성하도록 더 구성된다.
적어도 하나의 실시예에서, 상기 물체 인핸서는, 상기 피드 카메라와 상기 물체 인핸서 사이를 통과하는 상기 물체들에 대한 콘트라스트를 생성하기 위한 배경을 제공하는 고-밀도 폴리에틸렌(high-density polyethylene; HDPE) 시트이다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, 후속 이미지 프레임들에서 위치를 변경할 가능성이 높은 임의의 물체들을 식별하기 위해 주어진 이미지 프레임에 대해 배경 제거를 수행하고, 각각의 식별된 물체에 대한 경계를 정의하기 위해 상기 식별된 물체들에 대해 윤곽 검출을 수행하되, 상기 경계는 잠재적인 ROI인, 상기 윤곽 검출을 수행하고, 상기 후보 ROI들을 획득하기 위해 필터링을 수행함으로써 상기 주어진 이미지에서 상기 후보 ROI들을 획득하도록 구성된다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, 각각의 후보 ROI에 대해 샘플들을 생성하되, 주어진 샘플은 대응하는 후보 ROI에 대한 이미지 데이터를 포함하는, 샘플들을 생성하고, 상기 샘플들을 사전프로세싱하며, 상기 샘플이 상이한 클래스들에 속할 가능성들을 갖는 확률 분포를 생성하기 위해 각각의 사전프로세싱된 샘플에 대해 ROI 분류기를 적용함으로써 상기 후보 ROI들에 대해 분류를 수행하도록 구성된다.
적어도 하나의 실시예에서, 상기 클래스들은 펠릿 클래스, 비-펠릿 클래스, 및 모호함(ambiguous) 클래스를 포함한다.
적어도 하나의 실시예에서, 상기 펠릿성 스코어는 상기 샘플이 상기 펠릿 클래스에 속할 확률을 나타낸다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, 동일한 매트릭스 크기를 갖도록 상기 샘플들을 크기 조정하고, 평균-중심화 정규화를 수행함으로써 상기 샘플들을 사전프로세싱하도록 구성된다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, (a) 활성 궤적들이 없을 때 상기 후보 ROI들을 별개의 새로운 궤적들에 할당하거나, (b) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 거리 임계치보다 더 작을 때 상기 후보 ROI들을 상기 가장 가까운 활성 궤적들에 할당하거나, 또는 (c) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 상기 거리 임계치보다 더 클 때 상기 후보 ROI들을 새로운 활성 궤적에 할당함으로써 하나 이상의 이미지 프레임 내의 상기 후보 ROI들의 각각을 상기 궤적들 중 하나에 할당하도록 구성된다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, 상기 주어진 시간 간격에서 상기 이미지들 중 하나에 대해 업데이트되지 않는 궤적들을 포함하는 완성된 궤적들을 식별하고, 상기 완성된 궤적들의 각각에 대해 적어도 하나의 궤적 측정치를 결정하며, 상기 적어도 하나의 궤적 측정치에 기초하여 어떤 완성된 궤적들이 펠릿 궤적 클래스에 속하는지를 결정함으로써 상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하도록 구성된다.
적어도 하나의 실시예에서, 상기 적어도 하나의 프로세서는, 상기 적어도 하나의 궤적 측정치를 임계치와 비교하거나 또는 상기 적어도 하나의 궤적 측정치를 궤적 분류기에 제공함으로써 어떤 완성된 궤적들이 상기 펠릿 궤적 클래스에 속하는지를 결정하도록 구성된다.
적어도 하나의 실시예에서, 상기 적어도 하나의 궤적 측정치는, 상기 완성된 궤적의 길이, 상기 완성된 궤적을 포함하는 ROI들의 펠릿성 스코어들의 분포, 및/또는 하나 이상의 다른 필터 값들의 통계적 분포들의 적어도 하나의 측정치를 포함한다.
적어도 하나의 실시예에서, 상기 피드 카메라는, 상기 획득된 이미지들이 상기 물체 인핸서의 적어도 일 부분을 보여주도록 상기 물체 인핸서의 밑면에 연결되고 상기 물체 인핸서로부터 이격된다.
적어도 하나의 실시예에서, 상기 시스템은 상기 배출 파이프에 부착되는 브래킷을 더 포함하며, 상기 물체 인핸서는 사용 동안 상기 물체 인핸서 및 상기 피드 카메라의 회전 능력을 제한하기 위해 2개의 위치들에서 상기 브래킷에 장착된다.
적어도 하나의 실시예에서, 상기 물체 인핸서는, 증가된 양의 물 흐름이 상기 배출 파이프를 빠져 나가는 시간 동안 상기 물체 인핸서가 상기 출구 포트로부터 멀리 이동할 수 있도록 상기 배출 파이프의 상기 출구 포트에 인접하여 슬라이드가능하게 장착된다.
적어도 하나의 실시예에서, 상기 피드 카메라는 상기 배출 파이프에 인접한 브래킷에 고정되며, 상기 물체 인핸서는 상기 브래킷 위의 포스트들 상에 슬라이드가능하게 장착된다.
적어도 하나의 실시예에서, 상이한 양의 물 흐름이 상기 배출 파이프를 빠져 나갈 때 상기 물체 인핸서가 위로 그리고 아래로 이동할 수 있도록 상기 피드 카메라는 상기 배출 파이프에 고정되고 상기 물체 인핸서는 상기 배출 파이프에 인접하여 슬라이드가능하게 장착된다.
적어도 하나의 실시예에서, 상이한 양의 물 흐름이 상기 배출 파이프를 빠져 나가고 상기 피드 카메라는 상기 물체 인핸서로부터 떨어진 고정된 위치에 남아 있을 때 상기 물체 인핸서가 위로 그리고 아래로 이동할 수 있도록, 상기 물체 인핸서는 상기 배출 파이프에 인접하여 슬라이드가능하게 장착되며 상기 피드 카메라는 상기 물체 인핸서로부터 떨어진 상기 고정된 위치에서 상기 물체 인핸서에 결합된다.
다른 광범위한 측면에서, 본원의 교시들에 따르면, 육상-기반 양어장의 탱크에서 사료공급 모니터링을 위한 컴퓨터-구현 방법이 제공되며, 상기 방법은, 주어진 시간 간격 동안 피드 카메라로부터 획득된 비디오 피드로부터 이미지 프레임들 및 연관된 메타-데이터를 판독하는 단계로서, 상기 피드 카메라에 의해 획득된 상기 이미지 프레임들은 상기 탱크로부터 배출되는 먹지 않은 사료 펠릿들 및 비-펠릿 물체들의 이미지들인, 단계; 각각 상기 이미지들 내의 고유 물체들에 대응하는 후보 관심 영역(region of interest; ROI)들을 획득하기 위해 상기 이미지 프레임들을 사전프로세싱하는 단계로서, 상기 물체들은 잠재적으로 사료 펠릿들인, 단계; 상기 후보 ROI들에 대응하는 상기 물체들이 사료 펠릿 클래스에 속할 확률을 나타내는 펠릿성 스코어(pelletness score)를 획득하기 위해 상기 후보 ROI들에 대해 분류를 수행하는 단계; 상기 후보 ROI가 상기 사료 펠릿 클래스에 속할 가능성에 기초하여 상기 후보 ROI들을 유지할지 여부를 결정하는 단계; 상기 유지된 후보 ROI들의 각각을 궤적들에 할당하는 단계; 상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하는 단계; 및 상기 펠릿 궤적들에 기초하여 실시간으로 펠릿 카운트를 생성하는 단계로서, 상기 펠릿 카운트는 상기 탱크에서 상기 물고기에 의해 소비되지 않은 상기 먹지 않은 사료 펠릿들의 미리 결정된 퍼센트를 나타내는, 단계를 포함한다.
적어도 하나의 실시예에서, 상기 방법은, 상기 펠릿 카운트를 상기 양어장으로 전송하는 단계로서, 상기 펠릿 카운트는 적어도 부분적으로 상기 펠릿 카운트에 기초하여 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 물고기 사료공급 기계에 의해 사용되는, 단계를 더 포함한다.
적어도 하나의 실시예에서, 상기 방법은, 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 상기 펠릿 카운트에 기초하여 제어 신호를 생성하고 상기 제어 신호를 상기 양어장의 물고기 사료공급기 기계로 전송하는 단계를 더 포함한다.
적어도 하나의 실시예에서, 상기 방법은, 상기 시간 간격에서 상기 먹지 않은 사료 펠릿들의 그래디언트들을 결정하는 단계, 및 상기 그래디언트들이 그래디언트 임계치보다 더 클 때 경고를 생성하는 단계를 더 포함한다.
적어도 하나의 실시예에서, 상기 주어진 이미지에서 상기 후보 ROI들을 획득하는 단계는, 후속 이미지 프레임들에서 위치를 변경할 가능성이 높은 임의의 물체들을 식별하기 위해 주어진 이미지 프레임에 대해 배경 제거를 수행하는 단계, 각각의 식별된 물체에 대한 경계를 정의하기 위해 상기 식별된 물체들에 대해 윤곽 검출을 수행하는 단계로서, 상기 경계는 잠재적인 ROI인, 단계, 및 상기 후보 ROI들을 획득하기 위해 필터링을 수행하는 단계를 포함한다.
적어도 하나의 실시예에서, 상기 후보 ROI들에 대해 분류를 수행하는 단계는, 각각의 후보 ROI에 대해 샘플들을 생성하는 단계로서, 주어진 샘플은 대응하는 후보 ROI에 대한 이미지 데이터를 포함하는, 단계, 상기 샘플들을 사전프로세싱하는 단계, 및 상기 샘플이 상이한 클래스들에 속할 가능성들을 갖는 확률 분포를 생성하기 위해 각각의 사전프로세싱된 샘플에 대해 ROI 분류기를 적용하는 단계를 포함한다.
적어도 하나의 실시예에서, 상기 클래스들은 펠릿 클래스, 비-펠릿 클래스, 및 모호함 클래스를 포함한다.
적어도 하나의 실시예에서, 상기 펠릿성 스코어는 상기 샘플이 상기 펠릿 클래스에 속할 확률을 나타낸다.
적어도 하나의 실시예에서, 상기 방법은, 동일한 매트릭스 크기를 갖도록 상기 샘플들을 크기 조정하고, 평균-중심화 정규화를 수행함으로써 상기 샘플들을 사전프로세싱하는 단계를 포함한다.
적어도 하나의 실시예에서, 하나 이상의 이미지 프레임 내의 상기 후보 ROI들의 각각을 상기 궤적들 중 하나에 할당하는 단계는, (a) 활성 궤적들이 없을 때 상기 후보 ROI들을 별개의 새로운 궤적들에 할당하는 단계; (b) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 거리 임계치보다 더 작을 때 상기 후보 ROI들을 상기 가장 가까운 활성 궤적들에 할당하는 단계; 또는 (c) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 상기 거리 임계치보다 더 클 때 상기 후보 ROI들을 새로운 활성 궤적에 할당하는 단계를 포함한다.
적어도 하나의 실시예에서, 상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하는 단계는, 상기 주어진 시간 간격에서 상기 이미지들 중 하나에 대해 업데이트되지 않는 궤적들을 포함하는 완성된 궤적들을 식별하는 단계, 상기 완성된 궤적들의 각각에 대해 적어도 하나의 궤적 측정치를 결정하는 단계, 및 상기 적어도 하나의 궤적 측정치에 기초하여 어떤 완성된 궤적들이 펠릿 궤적 클래스에 속하는지를 결정하는 단계를 포함한다.
적어도 하나의 실시예에서, 어떤 완성된 궤적들이 상기 펠릿 궤적 클래스에 속하는지를 결정하는 단계는, 상기 적어도 하나의 궤적 측정치를 임계치와 비교하는 단계 또는 상기 적어도 하나의 궤적 측정치를 궤적 분류기에 제공하는 단계를 포함한다.
적어도 하나의 실시예에서, 상기 적어도 하나의 궤적 측정치는, 상기 완성된 궤적의 길이, 상기 완성된 궤적을 포함하는 ROI들의 펠릿성 스코어들의 분포, 및/또는 하나 이상의 필터 값들의 통계적 분포의 적어도 하나의 측정치를 포함한다.
적어도 하나의 실시예에서, 상기 방법은, 상기 획득된 이미지들 내의 물체들이 정의가능 주변부를 갖도록 상기 피드 카메라에 대해 배경을 제공하기 위해 상기 피드 카메라 반대편에 그리고 상기 피드 카메라의 시야 내에 상기 배출 파이프의 출구에 인접하여 물체 인핸서를 장착하는 단계; 및 상기 피드 카메라에 의해 획득된 상기 비디오 피드가 상기 물체 인핸서의 이미지들인 이미지 프레임들을 포함하고, 상기 이미지들이 획득될 때 상기 피드 카메라의 시야를 가로지르는 물체들을 포함하도록 상기 피드 카메라를 상기 물체 인핸서에 고정하는 단계를 포함한다.
적어도 하나의 실시예에서, 상기 방법은, 상기 피드 카메라와 상기 물체 인핸서 사이를 통과하는 상기 물체들에 대한 증가된 콘트라스트를 생성하기 위한 배경을 제공하기 위해 상기 물체 인핸서에 대해 고-밀도 폴리에틸렌(high-density polyethylene; HDPE) 시트를 사용하는 단계를 포함한다.
다른 광범위한 측면에서, 본원의 교시들에 따르면, 물고기를 포함하는 탱크를 갖는 육상-기반 양어장에서 사료공급 모니터링을 위한 시스템이 제공되며, 상기 시스템은, 상기 탱크에 결합된 배출 파이프에 장착되는 피드 카메라로서, 상기 피드 카메라는 각각의 이미지가 획득될 때 상기 피드 카메라의 시야를 가로지르는 물체들의 이미지들을 포함하는 비디오 피드를 캡처하도록 구성되고, 상기 물체들은 펠릿들 및 비-펠릿 물체들을 포함하는, 상기 피드 카메라; 및 적어도 하나의 프로세서, 및 실행될 때 상기 적어도 하나의 프로세서가 본원의 교시들에 따라 설명된 방법들 중 임의의 것을 수행하게 하는 저장된 명령어들을 갖는 비-일시적인 컴퓨터-판독가능 저장 매체를 포함하는 컴퓨팅 디바이스를 포함한다.
본 출원의 다른 특징들 및 이점들은 첨부된 도면들과 함께 취해지는 다음의 상세한 설명으로부터 명백해질 것이다. 그러나, 상세한 설명 및 특정 예들은, 본 출원의 바람직한 실시예들을 나타내지만, 단지 예시로서 제공되며, 이는, 본 출원의 사상 및 범위 내의 다양한 변경들 및 수정들이 이러한 상세한 설명으로부터 당업자들에게 명백해질 것이기 때문이라는 것이 이해되어야 한다.
본원에서 설명되는 다양한 실시예들의 더 양호한 이해를 위해, 그리고 이러한 다양한 실시예들이 어떻게 실행될 수 있는지를 더 명확하게 보여주기 위해, 예를 들어, 적어도 하나의 예시적인 실시예를 도시하며 이제 설명되는 첨부된 도면들에 대한 참조가 이루어질 것이다. 도면들은 본원에서 설명되는 교시들의 범위를 제한하도록 의도되지 않는다.
도 1은 양어장에서 AI-기반 사료공급을 위한 예시적인 실시예의 개략도를 도시한다.
도 2a는 물체 인핸서(object enhancer)의 예시적인 실시예의 개략도를 도시한다.
도 2b는 도 2a의 물체 인핸서에 대한 예시적인 이미지의 개략도를 도시한다.
도 3은 도 1의 시스템과 함께 사용하기 위한 API의 예시적인 스크린샷의 개략도를 도시한다.
도 4a 및 도 4b는, 브래킷 구성이 도 2a의 배경 인핸서에 결합되는, 배출 파이프의 일 부분에서의 브래킷 구성(예를 들어, 장착 어셈블리)의 예시적인 실시예의 사시도 및 측면 단면도를 도시한다.
도 5는 도 1의 시스템의 프로세스 흐름의 개략도를 도시한다.
도 6a 내지 도 6f는, 물고기가 먹지 않은 물고기 사료(즉, 먹지 않은 사료 펠릿들)를 자동으로 결정하기 위해 도 1의 시스템에 의해 사용되는 방법의 예시적인 실시예의 순서도들을 도시한다.
도 7a 및 도 7b는, 브래킷 구성이 도 2a의 배경 인핸서에 결합되는, 배출 파이프의 일 부분에서 확장가능하고 고정가능한 다른 예시적인 실시예의 브래킷 구성(예를 들어, 장착 어셈블리)의 사시도 및 측면 단면도를 도시한다.
도 7c는 도 2a의 배경 인핸서와 함께 사용하기 위한 브래킷 구성의 예시적인 실시예의 사시도를 도시한다.
도 7d는, 도 2a의 배경 인핸서를 통합하는 도 7c의 브래킷 구성의 정면 사시도를 도시한다.
본원에서 설명되는 예시적인 실시예들의 추가적인 측면들 및 특징들은 첨부된 도면들과 함께 취해지는 다음의 설명으로부터 나타날 것이다.
본원의 교시들에 따른 다양한 실시예들이 청구되는 주제의 적어도 하나의 실시예의 일 예를 제공하기 위해 아래에서 설명될 것이다. 본원에서 설명되는 어떠한 실시예도 임의의 청구되는 주제를 제한하지 않는다. 청구되는 주제는 이하에서 설명되는 디바이스들, 시스템들, 또는 방법들 중 임의의 하나의 특징들 모두를 갖는 디바이스들, 시스템들, 또는 방법들로 한정되지 않거나 또는 본원에서 설명되는 디바이스들, 시스템들, 또는 방법들 중 다수 또는 모두에 공통되는 특징들에 한정되지 않는다. 임의의 청구되는 주제의 실시예가 아닌 본원에서 설명되는 디바이스, 시스템, 또는 방법이 있을 수 있다. 본 문서에서 청구되지 않는 본원에서 설명되는 임의의 주제는 다른 보호 수단, 예를 들어, 계속 특허 출원의 주제일 수 있으며, 출원인들, 발명자들, 또는 소유자들은 본 문서 내의 그 개시에 의해 임의의 이러한 주제를 포기하거나, 청구하지 않거나, 또는 대중에게 헌정할 의도가 없다.
적절한 경우 예시의 단순성 및 명료성을 위해, 참조 번호들은 대응하는 또는 유사한 요소들을 나타내기 위해 도면들 사이에서 반복될 수 있다는 것이 이해될 것이다. 또한, 다수의 특정 세부사항들은 본원에서 설명되는 실시예들의 완전한 이해를 제공하기 위해 기술된다. 그러나, 본원에서 설명되는 실시예들이 이러한 특정 세부사항들 없이 실시될 수 있다는 것이 당업자들에게 이해될 것이다. 다른 경우들에서, 잘 알려진 방법들, 절차들, 및 구성 요소들은 본원에서 설명되는 실시예들을 모호하게 하지 않도록 상세히 설명되지 않았다. 또한, 본 설명은 본원에서 설명되는 실시예들의 범위를 제한하는 것으로 간주되지 않아야 한다.
또한, 본원에서 사용되는 용어들 "결합된" 또는 "결합하는"은 이러한 용어들이 사용되는 맥락에 의존하여 몇몇 상이한 의미들을 가질 수 있다는 것을 유의해야 한다. 예를 들어, 용어들 "결합된" 또는 "결합하는"은 기계적 또는 전기적 함축된 의미를 가질 수 있다. 예를 들어, 본원에서 사용될 때, 용어들 "결합된" 또는 "결합하는"은, 특정 맥락에 따라 2개의 요소들 또는 디바이스들이 서로 직접 연결될 수 있거나 또는 전기적 신호, 전기적 연결, 또는 기계적 요소를 통해 하나 이상의 중간 요소들 또는 디바이스들을 통해 서로 연결될 수 있다는 것을 나타낼 수 있다.
또한, 본원에서 사용될 때, 용어 "및/또는"은 포괄적-논리합(inclusive-or)을 나타내도록 의도된다는 것을 유의해야 한다. 즉, "X 및/또는 Y"는, 예를 들어, X 또는 Y 또는 둘 모두를 의미하도록 의도된다. 추가적인 예로서, "X, Y, 및/또는 Z"는 X 또는 Y 또는 Z 또는 이들의 임의의 조합을 의미하도록 의도된다.
본원에서 사용되는 "실질적으로", "약" 및 "대략"과 같은 정도의 용어들은, 최종 결과가 크게 변경되지 않도록, 수식된 용어의 합리적인 양의 편차를 의미한다는 것을 유의해야 한다. 이러한 정도의 용어들은 또한, 이러한 편차가 이것이 수식하는 용어의 의미를 부정하지 않는 경우, 예를 들어, 1%, 2%, 5%, 또는 10%만큼과 같이 수식되는 용어의 편차를 포함하는 것으로 해석될 수 있다.
또한, 종점들에 의한 수치 범위들의 언급은 본원에서 해당 범위 내에 포함된 모든 수들 및 분수들을 포함한다(예를 들어, 1 내지 5는 1, 1.5, 2, 2.75, 3, 3.90, 4, 및 5를 포함한다). 또한, 모든 수들 및 그 분수들은 용어 "약"으로 수식되는 것으로 추정되며, 이는 최종 결과가 크게 변경되지 않는 경우 최대 참조되는 수의 특정 양까지의 변동, 예를 들어, 1%, 2%, 5%, 또는 10%와 같은 변동을 의미한다는 것이 이해될 것이다.
또한, 본원에서 설명되는 임의의 시스템 또는 방법의 동작을 설명하는 것과 관련하여 용어 "윈도우"는, 초기화, 구성, 또는 다른 사용자 동작들을 수행하기 위한 그래픽 사용자 인터페이스(graphical user interface; GUI)와 같은 사용자 인터페이스를 설명하는 것으로 이해되어야 한다는 것을 유의해야 한다.
본원의 교시들에 따라 설명되는 디바이스들, 시스템들, 또는 방법들의 예시적인 실시예들은 전반적으로 하드웨어와 소프트웨어의 조합으로 구현된다. 예를 들어, 본원에서 설명되는 실시예들은, 적어도 부분적으로, 적어도 하나의 프로세스 요소 및 적어도 하나의 저장 요소(즉, 적어도 하나의 휘발성 메모리 요소 및 적어도 하나의 비-휘발성 메모리 요소)를 포함하는 하나 이상의 프로그램가능 디바이스들 상에서 실행되는 하나 이상의 컴퓨터 프로그램들을 사용함으로써 구현될 수 있다. 하드웨어는, 하드웨어의 구현에 의존하여 디스플레이, 프린터, 하나 이상의 센서들, 및 유사한 것 중 하나 이상뿐만 아니라 터치 스크린, 키보드, 마우스, 버튼들, 키들, 슬라이더들, 및 유사한 것 중 적어도 하나를 포함하는 입력 디바이스들을 포함할 수 있다.
본원에서 설명되는 실시예들의 적어도 부분을 구현하기 위해 사용되는 일부 요소들은 객체-지향 프로그래밍과 같은 하이-레벨 절차 언어로 작성되는 소프트웨어를 통해 구현될 수 있다는 것을 또한 유의해야 한다. 프로그램 코드는 C++, C#, 자바스크립트, 파이썬, 또는 임의의 다른 적절한 프로그래밍 언어로 작성될 수 있으며, 객체-지향 프로그래밍에서 당업자들에게 알려진 바와 같은 모듈들 또는 클래스들을 포함할 수 있다. 대안적으로, 또는 추가적으로, 소프트웨어를 통해 구현되는 이러한 요소들 중 일부는 필요에 따라 어셈블리 언어, 기계 언어, 또는 펌웨어로 작성될 수 있다. 어느 경우에나, 언어는 컴파일링형 또는 해석형 언어일 수 있다.
이러한 소프트웨어 프로그램들 중 적어도 일부는, 비제한적으로, 본원에서 설명되는 실시예들 중 적어도 하나의 기능을 구현하기 위해 필요한 프로세서, 운영 시스템, 및 연관된 하드웨어와 소프트웨어를 갖는 디바이스에 의해 판독가능한 ROM, 자기 디스크, 광학 디스크, USB 키, 및 유사한 것과 같은 컴퓨터 판독가능 매체에 저장될 수 있다. 소프트웨어 프로그램 코드는, 디바이스에 의해 판독될 때, 본원에서 설명되는 방법들 중 적어도 하나를 수행하기 위해 새롭고, 특정하며, 미리 결정된 방식(예를 들어, 특수-목적 컴퓨터)으로 동작하도록 디바이스를 구성한다.
본원에서 설명되는 디바이스들, 시스템들, 및 방법들과 연관된 프로그램들 중 적어도 일부는, 하나 이상의 프로세싱 유닛들에 대한 프로그램 코드와 같은 컴퓨터 사용가능 명령어들을 포함하는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로 배포될 수 있다. 매체는, 비제한적으로, 하나 이상의 디스켓들, 콤팩트 디스크들, 테이프들, 칩들, 및 자기 및 전기 저장부와 같은 비-일시적인 형태들을 포함하여 다양한 형태들로 제공될 수 있다. 대안적인 실시예들에서, 매체는, 비제한적으로, 유선 송신들, 위성 송신들, 인터넷 송신들(예를 들어, 다운로드들), 미디어, 디지털 및 아날로그 신호들, 및 유사한 것과 같이 사실상 일시적일 수 있다. 컴퓨터 사용가능 명령어들은 또한, 컴파일링된 코드 및 컴파일링되지 않은 코드를 포함하여 다양한 포맷들일 수 있다.
본원의 교시들에 따르면, 양어장에서 AI-기반 사료공급을 위한 시스템과 방법, 및 이와 함께 사용하기 위한 컴퓨터 제품들에 대한 다양한 실시예들이 제공된다.
먼저 도 1을 참조하면, 도 1은 양어장에서 AI-기반 사료공급을 위한 사료공급(feed) 카운팅 시스템(100)의 예시적인 실시예의 개략도를 도시한다. 사료공급 카운팅 시스템(100)은 탱크(110), 배출 파이프(112), 배출 파이프(112)에 고정된 피드 카메라(feed camera)(114), 물체 인핸서(116), 이더넷 케이블(118), 이더넷 스위치(120), 및 컴퓨터(140)를 포함한다. 배출 파이프(112)는 출구 파이프로도 지칭될 수 있다. 물체 인핸서(116)는 프로파일 인핸서 또는 배경 인핸서로도 지칭될 수 있다. 대안적인 실시예들에서, 일부 요소들은, 다른 네트워크 요소들을 사용하여 구현될 수 있는 이더넷 케이블(118) 및 이더넷 스위치(120)와 같은 다른 요소들을 사용하여 구현될 수 있다는 것을 유의해야 한다.
피드 카메라(114)(단일 IP 카메라일 수 있음) 및 물체 인핸서(116)는 전반적으로 서로 대향되어 배출 파이프(112) 내에 위치된다. 카메라 기술이 매년 계속해서 발전함에 따라, 피드 카메라(114)에 대한 기술적 사양들은 시간의 경과에 따라 진화할 수 있다. 그러나, 고려될 수 있는 피드 카메라(114)에 대한 특정 사양들은 해상도 및 노출이다. 예를 들어, 576x704의 해상도 및 1/250의 노출이 시스템(100)과 함께 사용하기에 적절할 수 있다. 이는, 물체 인핸서(116)가 피드 카메라(114)의 시야에 대한 배경을 제공하여 피드 카메라(114)와 물체 인핸서(116) 사이를 통과하며 피드 카메라(114)에 의해 획득되는 이미지들에 캡처되는 물체들이 비디오 피드 내의 획득된 이미지들 중 적어도 하나에서 정의가능 둘레를 갖기 때문에 고-품질 데이터의 수집을 가능하게 한다.
물체 인핸서(116)의 형상은, 이를 배출 파이프(112) 내에서 제위치(예를 들어, 도 2a에 도시된 바와 같음)에 고정하기 위해 체결구들을 수용하는 홈들을 갖는 상태로 전반적으로 원형일 수 있다. 사료공급 카운팅 시스템(100)은, 펠릿들(210), 배설물들(220) 및 다른 요소들(예를 들어, 도 2b에 도시된 바와 같음)을 구별함으로써, 탱크(110) 밖으로 그리고 배출 파이프(112)를 통해 흐르는 낭비되는 사료의 양을 실시간으로 추적하는 펠릿 추적 알고리즘(또는 "펠릿 추적기")을 이용한다. 사료공급 카운팅 시스템(100)은, 펠릿 추적기에 의해 결정된 먹지 않은 사료(예를 들어, 먹지 않은 사료 펠릿들의 카운트)에 기초하여 탱크(110) 내의 물고기의 식욕에 따라 사료공급 카운팅 시스템(100)에 의해 사용되는 물고기 사료공급기 기계(320)(예를 들어, 도 3에 도시된 바와 같음)에 의해 투여되는 사료의 양을 자동으로 업데이트하기 위해 기존 사료공급 시스템의 API(310)에 직접적으로 연결될 수 있다. 당업자들에게 알려진 바와 같은 물고기 사료공급기 기계(320)는, 물고기 사료(즉, 펠릿들)를 특정 시간 간격으로 물고기에게 제공하기 위해 양어장에서 이용되는 시스템이다.
컴퓨팅 디바이스로 지칭될 수 있는 컴퓨터(140)는 단일 컴퓨팅 디바이스(예를 들어, 데스크탑, 랩탑, 또는 노트패드)로서 구현될 수 있으며, 프로세서 유닛(144)(하나 이상의 프로세서들을 갖거나 또는 예시의 용이함을 위해 단지 하나의 프로세서만을 갖는 것으로 지칭될 수 있음), 디스플레이(146), 인터페이스 유닛(148), 입력/출력(input/output; I/O) 하드웨어(150), 통신 유닛(152), 전원 유닛(154), 및 메모리 유닛("데이터 저장부"로도 지칭됨)(156)을 포함한다. 메모리 유닛(156)은, 프로세서 유닛(144)에 의해 사용하기 위해 저장된 컴퓨터 명령어들을 갖도록 설계될 수 있는 비-일시적인 컴퓨터-판독가능 매체일 수 있다. 다른 실시예들에서, 컴퓨터(140)는 더 많거나 또는 더 적은 구성요소들을 가질 수 있지만 전반적으로 유사한 방식으로 기능한다. 예를 들어, 컴퓨터(140)는 2개 이상의 컴퓨팅 디바이스 및/또는 프로세서 유닛(144)을 사용하여 구현될 수 있다. 예를 들어, 컴퓨터(140)는 서버 또는 서버 클러스터로서 기능하도록 구현될 수 있다.
프로세서 유닛(144)은 시스템(100)의 동작을 제어하며, 시스템(100)의 구성 및 동작 요건들에 의존하여 충분한 프로세싱 파워를 제공할 수 있는 하나의 프로세서를 포함할 수 있다. 예를 들어, 프로세서 유닛(144)은, 일부 경우들에서, 고 성능 프로세서 또는 GPU를 포함할 수 있다. 대안적으로, 프로세서 유닛(144)에 의해 사용되는 복수의 프로세서들이 있을 수 있으며, 이러한 프로세서들은 병렬로 기능하고 특정 기능들을 수행할 수 있다.
디스플레이(146)은, 비제한적으로, 태블릿 디바이스 또는 데스크탑 컴퓨터에 대한 것과 같은 컴퓨터 모니터 또는 LDC 디스플레이일 수 있다.
인터페이스 유닛(148)은, 프로세서 유닛(144)이 시스템(100) 내의 다른 디바이스들과 통신하는 것을 가능하게 하는 임의의 인터페이스일 수 있다. 일부 실시예들에서, 인터페이스 유닛(148)은 직렬 버스 또는 병렬 버스 중 적어도 하나, 및 대응하는 포트, 예컨대 병렬 포트, 직렬 포트, USB 포트 및/또는 네트워크 포트를 포함할 수 있다. 예를 들어, 네트워크 포트는, 프로세싱 유닛(144)이, 직접적으로 또는 모뎀, 라우터, 스위치, 허브 또는 다른 라우팅 또는 변환 디바이스를 통해서, 근거리 네트워크(Local Area Network; LAN), 광역 네트워크(Wide Area Network; WAN), 도시권 네트워크(Metropolitan Area Network; MAN), 무선 근거리 네트워크(Wireless Local Area Network; WLAN), 가상 사설 네트워크(Virtual Private Network; VPN), 또는 피어-투-피어 네트워크를 통해 통신할 수 있도록 사용될 수 있다.
I/O 하드웨어(150)는, 비제한적으로, 예를 들어, 마이크, 스피커, 키보드, 마우스, 터치 패드, 디스플레이 디바이스 및 프린터 중 적어도 하나를 포함할 수 있다.
전원 유닛(154)은, 당업자들에게 일반적으로 알려진 것과 같은 전원을 제공하기 위해 시스템(100)의 다양한 구성요소들에 연결된 하나 이상의 전원 공급장치들(미도시)을 포함할 수 있다.
통신 유닛(152)은, 프로세서 유닛(144)이 다른 디바이스들과 통신하는 것을 가능하게 하기 위한 다양한 통신 하드웨어를 포함한다. 예를 들어, 통신 유닛(152)은, 네트워크 어댑터, 예컨대 이더넷 또는 802.11x 어댑터, 블루투스 무선 또는 다른 근거리 통신 디바이스, 또는, 예를 들어, IEEE 802.11a, 802.11b, 802.11g, 또는 802.11n과 같은 표준들을 사용하는 CDMA, GSM, 또는 GPRS에 따른 무선 통신을 위한 무선 트랜시버 중 적어도 하나를 포함한다.
메모리 유닛(156)은, 운영 시스템(158), 펠릿 추적기(159), 관심 영역(region of interest; ROI) 제안 모듈(160), ROI 분류 모듈(162), ROI 추적 모듈(164), 궤적 분류 모듈(166) 및 데이터 파일들(168)에 대한 프로그램 명령어들을 저장한다. 모듈들(160 내지 166) 중 임의의 것 또는 펠릿 추적기(159)에 대한 프로그램 명령어들 중 임의의 것이 프로세싱 유닛(144)의 적어도 하나의 프로세서 또는 다른 컴퓨팅 디바이스의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서는 본원의 교시들에 따른 특정 기능들을 수행하도록 구성된다. 대안적인 실시예들에서, 펠릿 추적기(159) 및 모듈들(160 내지 166)은 동일한 기능이 제공되는 한 상이한 소프트웨어 프로그래밍 구조체들을 사용하여 다른 방식들로 조직될 수 있다. 운영 시스템(158)은, 어떤 물리적 프로세스가 특정 모듈들 및 다른 프로그램들을 실행하기 위해 사용될지 선택할 수 있다. 예를 들어, 운영 시스템(158)은, 예를 들어, 프로세서 내의 상이한 코어들 또는 다중-프로세서 서버 상의 상이한 프로세서들을 사용하여, 예를 들어, 사용되는 물리적 하드웨어의 상이한 부분들 상에서 실행되도록 프로세스들을 스위칭할 수 있다.
펠릿 추적기(159)는 실시간으로 펠릿 카운팅을 수행하기 위한 프로그램 명령어들을 포함하며, 먹지 않은 사료 펠릿들의 양 및/또는 먹지 않은 사료 펠릿들 내의 급격한 스파이크들에 대한 임의의 그래디언트(gradient) 물고기 사료공급 데이터와 같은 사료공급 데이터를 생성하고, 이는 탱크(110) 내의 물고기에 제공되는 물고기 사료의 양을 조정하기 위해 물고기 사료공급기(320)에 대한 제어 신호를 생성하기 위한 API(310)에 제공된다. 펠릿 추적기(159)는 펠릿 추적 동안 특정 동작들을 수행하기 위해 ROI 제안 모듈(160), ROI 분류 모듈(162), ROI 추적 모듈(164) 및 궤적 분류 모듈(166)을 호출한다. 펠릿 추적기(159)의 동작은 전반적으로 도 6a와 관련하여 설명된다.
대안적으로, 적어도 하나의 실시예에서, 다양한 모듈들은, 메시지 전달을 통해 통신하는, 예를 들어, 이벤트 기반 방식으로 통신하는 독립형 프로그램들로서 역할할 수 있다. 예를 들어, ROI 제안 모듈(160)은 비디오 피드에 통신가능하게 결합될 수 있으며, 새로운 이미지 프레임이 획득될 때, ROI 제안 모듈(160)이 그 프로세싱을 수행한다. 이미지 프레임에 대한 ROI들이 추가적인 프로세싱을 위해 준비될 때, ROI 분류 모듈(162)은 이들을 수락하기 위해 대기한다. 유사하게, ROI 분류 모듈(162)은, 프로세싱할 데이터가 있음을 ROI 추적기 모듈(164)에 통지하기 위해 ROI 추적기 모듈(164)에 대한 이벤트를 생성한다. 이는, 소프트웨어 아키텍처가 안전하고 확장가능한 방식으로 다수의 프로세서들 및/또는 컴퓨팅 디바이스에 걸쳐 확장가능하고 분산되는 것을 가능하게 한다.
데이터 파일들(168)은, 펠릿 추적기(159) 및 모듈들(160 내지 166)에 의해 사용되는 특정 분류기들 및 다른 변수들과 같은 동작 파라미터들을 저장하기 위해 사용될 수 있다. 데이터 파일들(168)은 또한, 모듈들(160 내지 166)에 의해 사용되는 알고리즘들의 추가적인 트레이닝 및/또는 품질 제어를 위해 사용될 수 있는 식별된 물체들 및 궤적들과 같은 다른 데이터뿐만 아니라 사료공급 추적기에 의해 결정되는 먹지 않은 사료 펠릿들의 히스토리를 저장하기 위해 사용될 수 있다.
고 레벨 개요
고 레벨에서, 펠릿 카운팅 알고리즘 기능은 4개의 별개의 단계들로 분해될 수 있다: 관심 영역(region of interest; ROI) 제안, ROI 분류, ROI 추적, 및 궤적 분류.
ROI 제안 모듈(160)은 비디오 프레임들을 판독하고, 별개의 물체들을 대략적으로 나타내는 각각의 프레임의 세그먼트들을 찾는다. ROI 제안 모듈(160)은, 제안된 ROI들의 세트를 생성하기 위해 명백하게 펠릿들이 아닌 ROI들을 생략하기 위해 초기 필터링 라운드에서 컴퓨터 비전 기술들을 사용한다. ROI 제안 모듈(160)의 출력은 임의의 필수 메타-데이터와 함께 제안된 ROI들을 포함하며, 이들은 ROI 분류 모듈(162)에 제공될 수 있다. ROI 제안 모듈(160)의 동작들은 전반적으로 도 6b와 관련하여 설명된다.
ROI 분류 모듈(162)은 ROI 제안 모듈(160)에 의해 결정된 각각의 ROI에, ROI가 실제 사료 펠릿인 물체를 나타낼 확률을 나타내는 "펠릿성(pelletness)의 확률 스코어를 할당하는 것을 담당한다. 각각의 ROI에 펠릿성을 할당하기 위해, ROI 분류 모듈(162)은, 비제한적으로, ROI의 원시(raw) 픽셀들에 대해 동작하는 콘볼루션 신경망(convolutional neural network; CNN)과 같은 딥 러닝(deep learning; DL) 기반 기술, 또는, 예를 들어, ROI 제안 모듈(160)에서 추출된 특정 특징들(예컨대, 픽셀 색상 분포, 캐니(Canny) 또는 소볼(Sobol) 에지 검출로 발견되는 에지들, 등)을 사용하여 동작하는 더 "고전적인" 기계 학습 기술(예컨대, XGB(extreme gradient boosted trees), SVM(support vector machine), 등과 같은 트리-기반 방법들을 사용할 수 있다. ROI 분류 모듈(162)은 또한 더 일반적으로 "분류기"로도 지칭될 수 있다. ROI 분류 모듈(162)의 출력은 임의의 필수 메타-데이터와 함께 각각의 ROI의 펠릿성 스코어들을 포함하며, 이들은 ROI 추적 모듈에 제공될 수 있다. ROI 분류 모듈(162)의 동작들은 전반적으로 도 6c와 관련하여 설명된다.
ROI 추적 모듈(164)은, 연관된 펠릿성 스코어를 갖는 ROI가 (1) 새로운 궤적에 추가될 수 있거나, (2) 기존 궤적에 추가될 수 있거나, 또는 (3) 무시될 수 있는지 여부를 결정함으로써 펠릿들의 궤적들을 결정하고 업데이트하기 위해 맞춤-설계형 추적 알고리즘을 사용한다. 각각의 궤적은 직교 좌표계 및, 해당 궤적을 포함하는 각각의 ROI의 대응하는 펠릿성 스코어를 포함한다. ROI 추적 모듈(164)이 주어진 프레임에서 나타난 각각의 ROI로 무엇을 할지 결정한 이후에, ROI 추적 모듈은 새로운 ROI로 업데이트되지 않은 임의의 궤적들을 종료할 것이며, 이들은 그 후에 하나 이상의 완성된 궤적들에 추가된다. ROI 추적 모듈(164)의 출력은, 궤적 분류 모듈(166)로 전송될 수 있는 완성된 궤적들을 포함한다. ROI 추적 모듈(164)의 동작들은 전반적으로 도 6d 및 도 6e와 관련하여 설명된다.
궤적 분류 모듈(166)은, 완성된 궤적이 펠릿 또는 비-펠릿 물체로서 카운트되는지 여부에 대한 최종 결정을 수행한다. 이를 위해, 궤적 분류 모듈(166)은 궤적의 길이, 궤적을 구성하는 물체들에 대한 펠릿성 스코어들의 분포, 및 ROI 제안 모듈(160)에 의해 결정된 다른 ROI 메타-데이터의 분포들과 같은 데이터를 사용할 수 있다. 궤적 분류 모듈(166)은, 확률적 기계 학습 모델을 사용함으로써 또는 단순히 완성된 궤적들이 사료 펠릿 또는 다른 물체에 대응하는지 여부를 결정하기 위해 주의 깊게 선택된 임계 값들 및 조건부 규칙들을 이용하여 전술한 데이터를 프로세싱할 수 있다. 궤적 분류 모듈(166)의 동작들은 전반적으로 도 6f와 관련하여 설명된다.
데이터 수집을 위한 물리적 셋업
펠릿 카운팅 알고리즘이 효과적으로 작동하게 하기 위해, 이하에서 설명되는 특정 하드웨어 셋업은 개선된 효율 및 정확성을 달성한다.
물체 인핸서(116)는 피드 카메라(114)에 대한 배경을 생성하는 임의의 재료로 만들어질 수 있다. 예를 들어, 물체 인핸서(116)는, 비제한적으로, 고-밀도 폴리에틸렌 시트(high-density polyethylene sheet; HDPE) 또는 다른 재료들을 사용하여 만들어진 내구성이 있는 반투명 플라스틱일 수 있다. 이러한 물체 인핸서(116)는 고-콘트라스트 배경을 생성하며, 따라서 피드 카메라(114)와 물체 인핸서(116) 사이를 통과하는 임의의 물체들을 비디오 피드로부터의 이미지 프레임들에 적용되는 알고리즘들에 의해 훨씬 더 쉽게 식별가능하게 만든다. 바람직하게는, 물체 인핸서는 일관된 색상을 가지며, 반투명하다. 예를 들어, 색상은, 비제한적으로, (예를 들어, 고-콘트라스트 배경을 제공하기 위해) 백색 또는 밝은 색상일 수 있다.
도 4a는 배출 파이프(112)에서 사용되는 하드웨어 셋업(400)의 예시적인 실시예의 사시도를 도시한다. 도 4b는 도 4a에 도시된 예시적인 실시예의 단면도를 도시한다. 피드 카메라(114)는, 피드 카메라(114)의 시야가 물체 인핸서(116)의 전체 또는 상당한 부분을 캡처할 수 있도록 그리고 또한 피드 카메라(114)와 물체 인핸서(116)의 하부 표면 사이에 고정된 거리가 존재하도록 물체 인핸서(116)의 밑면에 연결될 수 있다. 예를 들어, 브래킷(408)은 물체 인핸서(116)의 하부 표면에 부착되는 상부 단부들 및 레그(leg)들을 통해 상부 단부들에 연결되는 중간 부분을 가질 수 있어서 피드 카메라(114)는 중간 부분 상에 장착될 수 있고 물체 인핸서(116)를 향해 지향된 시야를 가질 수 있다. 포스트들(410p)을 갖는 U-형상의 브래킷과 같은 제2 브래킷(410)은, 제2 브래킷이 물체 인핸서(116) 및 피드 카메라(114)가 회전하는 능력을 제한하지만 배출 파이프(112) 내의 수압이 변경되어 물 흐름(460)이 배출 파이프(112)를 빠져 나가게 함에 따라 물체 인핸서(116) 및 피드 카메라(114)가 상승하고 하강하는 것을 가능하게 하는 방식으로 배출 파이프(112)에 장착될 수 있다. 브래킷(408) 및/또는 제2 브래킷(410)은, 브래킷(408) 및/또는 제2 브래킷(410)이 배출 파이프(112)에 인접하고, 피드 카메라(114) 및 물체 인핸서(116)가 고정된 거리를 유지하거나 또는 대안적으로 프리셋 범위 내에서 거리가 변화하는 것을 가능하게 하기 위해 배출 파이프(112)에 대해 위치를 유지하는 다른 방식들로 배출 파이프(112)에 결합될 수 있다. 대안적으로, 또는 추가적으로, 피드 카메라(114)는 브래킷(408) 또는 제2 브래킷(410)에 연결될 수 있다. 대안적으로, 또는 추가적으로, 피드 카메라(114)는 배출 파이프(112)에 연결될 수 있다. 피드 카메라(114)는 이를 네트워크 연결(예를 들어, 이더넷 케이블(118))에 연결하기 위한 와이어(420)를 가질 수 있다. 대안적으로, 피드 카메라(114)는 이더넷 스위치(120)에 대한 무선 연결을 가질 수 있다.
예를 들어, 브래킷(410)은, 물체 인핸서(116)가 배출 파이프(112)의 출구 포트 위에 위치되고 위쪽으로 이동할 수 있어서 물체 인핸서(116)의 하단 표면과 출구 포트의 상부 표면 사이에 갭(gap)을 제공하여 배출 파이프(112) 내의 수압의 증가가 존재할 때 물 흐름(460)이 배출 파이프(112)를 빠져 나가는 것을 가능하게 하도록 배출 파이프(112)의 출구 포트 또는 개구에 장착될 수 있다. 이를 달성하기 위해, 브래킷(410)은, 물체 인핸서(116)의 에지들 중 2개의 부분들에 있는 홈들(116g)에 의해 슬라이드가능하게 맞물리는 포스트들(410p) 형태의 슬라이딩 메커니즘을 포함한다. 수압이 감소할 때, 물체 인핸서(116)는 아래쪽으로 이동할 수 있다. 수압이 증가할 때, 물체 인핸서(116)는 위쪽으로 이동할 수 있다. 결과는, 피드 카메라(114)가 배출 파이프(112)에 고정되고 물체 인핸서(116)가 배출 파이프(112)에 인접하여 슬라이드가능하게 장착되어 상이한 양의 물 흐름이 배출 파이프(112)를 빠져 나갈 때 물체 인핸서(116)가 위로 그리고 아래로 이동할 수 있는 구성일 수 있다.
도시되지는 않았지만, 물체 인핸서(116)가 브래킷(410)의 포스트들(410p)로부터 분리되고 배출 파이프(112)의 출구 포트로부터 멀리 부유하는 것을 방지하기 위해 유지 요소가 사용될 수 있다. 예를 들어, 포스트들(410p)의 단부 부분들은, 물 흐름(460)이 물체 인핸서(116)를 포스트들(410p)의 상단으로 리프트하고 물체 인핸서(116)가 배출 파이프(112)의 출구 포트에서의 마운트(예를 들어, 브래킷(410)의 포스트들(410p))로부터 분리되는 것을 방지하기에 충분히 강할 때 이들이 물체 인핸서(116)의 상부 표면과 맞물리도록 구근형 단부를 갖거나 또는 바깥쪽으로 플레어(flare)될 수 있다.
선택적으로, 적어도 하나의 실시예에서, 조명(450)은 물체 인핸서(116)를 향해 지향되는 광을 생성하도록 장착될 수 있다. 이러한 경우들에서, 조명(450)은 브래킷(410)에 고정될 수 있다.
브래킷(408), 브래킷(410), 및 포스트들(410p)은 함께 브래킷 구성 또는 장착 어셈블리로서 지칭될 수 있다.
적어도 하나의 실시예에서, 브래킷(410)은, 서로 인접하고 서로에 대해 이동가능하여 브래킷 구성의 폭의 슬라이드가능 확대 또는 감소를 가능하게 하며 그 결과 상이한 직경들을 갖는 배출 파이프들(112)에 끼워 맞춰질 수 있는 하부 수평 부재들(410m1 및 410m2)을 포함한다는 것을 또한 유의해야 한다. 따라서, 하부 수평 부재들(410m1 및 410m2)은, 포스트들(401p)이 위치되는 브래킷(410)의 상부 측방 탭들이 배출 파이프(112)의 측벽들의 상부 에지와 중첩하게 위치되도록 하부 수평 부재들이 위치될 때 2개의 수평 부재들(410m1 및 410m2)을 함께 체결하기 위한 체결구를 수용할 수 있는 서로 정렬되는 채널들을 포함한다.
도 5는 그 동작 환경에서 시스템(100)의 예시적인 실시예의 개략도를 도시한다. 탱크(110)는 펠릿들(210)을 먹는 물고기(510)를 내부에 가지고 있다. 물고기(510)는 또한 배설물들(220)을 배설한다. 임의의 먹지 않은 사료 펠릿들(210)뿐만 아니라 배설물들(220)이 배출 파이프(112)를 통해 탱크(110)를 빠져 나온다. 이러한 별개의 물체들(먹지 않은 사료 펠릿들(210) 및 배설물들(220))은 수압 및 물 흐름(460)으로 인해 물체 인핸서(116)를 향해 이동한다. 물체 인핸서(116)는 물 위에 떠 있고, 물 흐름(460)을 차단하는 것을 피하기 위해 파이프 브래킷(410)의 포스트들(410p)과 이동가능하게 맞물린다. 피드 카메라(114)는, 조명(450)이 물체 인핸서(116)를 조명하는 상태에서 투명하거나 또는 반투명한 물체 인핸서(116)를 향해 지향된다. 적어도 하나의 구현예에서, 조명(450)은, 동작 환경 내의 주변 조명이 물체들(예를 들어, 먹지 않은 사료 펠릿들(210), 배설물들(220) 및 다른 요소들)이 피드 카메라(114)에 의해 획득되는 비디오 피드(530)의 이미지 프레임들에 캡처되는 것을 가능하게 하기에는 충분하지 않을 때에만 물체 인핸서(116)를 조명한다. 피드 카메라(114)는 이더넷 케이블(118)과 같은 통신 링크를 통해 또는 피드 카메라(114)가 트랜시버(미도시)를 포함하는 적어도 하나의 실시예에서는 무선으로 비디오 피드(530)를 컴퓨터(140)에 제공한다. 컴퓨터(140)는, 먹지 않은 사료 펠릿들을 카운트하며 펠릿 카운트와 같은 데이터 출력을 물고기 사료공급 기계(320)에 제공하는 펠릿 추적기(159)를 동작시킨다. 적어도 하나의 실시예에서, 컴퓨터(140)는 펠릿 카운트를 제공할 수 있으며, 선택적으로 먹지 않은 사료 펠릿들의 임의의 과도한 그래디언트들을 장래의 사용을 위해 또는 추적 목적을 위해 양어장의 운영자에게 제공할 수 있다. 컴퓨터(140)는 이하에서 설명되는 다양한 모듈들을 사용하여 이러한 출력을 생성할 수 있다.
도 6a는, 시스템(100)이 사용하기 위해 펠릿 추적기(159)에 의해 구현될 수 있는 펠릿 카운팅 알고리즘(600)의 예시적인 실시예의 순서도를 도시한다.
610에서, 컴퓨터(140)는, 피드 카메라(114)에 의해 획득되는 비디오 피드(530)로부터 결과적인 이미지 프레임들을 획득한다. 예를 들어, 컴퓨터(140)는, 예를 들어, 미리 정의된 프레임 레이트로 피드 카메라(114)에 의해 획득된 순서로 이미지 프레임들을 획득한다. 적어도 하나의 구현예에서, 피드 카메라(114)는 초당 25 프레임의 프레임 레이트를 사용하며, 프레임 레이트가 너무 낮은 경우, 프레임들 사이에서 물체가 이동하는 거리는 정확한 물체 추적에 대해서는 너무 클 수 있다. 이미지 프레임들은 데이터 저장부(156)에 저장될 수 있다. 각각의 이미지 프레임은, 프레임이 획득되었을 때 어떤 것이 피드 카메라(114)의 시야 내에 있었는지를 나타내는 데이터를 포함한다는 것이 이해되어야 한다.
620에서, 컴퓨터(140)는 제안되는 ROI들 및 임의의 연관된 메타-데이터(예컨대 이들이 유래한 피드 카메라(114)에 대한 고유 식별자)를 획득하기 위해 ROI 제안 모듈(160)을 사용하여 이미지 프레임들을 사전-프로세싱한다. 제안되는 ROI들 및 메타-데이터는, 비제한적으로, 레디스(Redis) 또는 아파치 카프카(Apache Kafka)와 같은 메시징 툴을 통해 ROI 분류 모듈(162)로 제공된다. 사용되는 메시징 툴은, 예를 들어, 각각의 모듈이 클러스터 내의 상이한 컴퓨팅 디바이스들 또는 상이한 프로세서들 상에서 수행될 때 상이한 모듈들 사이의 데이터의 전송을 용이하게 할 수 있다. ROI 제안 모듈(160)의 동작은 도 6b와 관련하여 더 상세하게 설명된다.
630에서, 컴퓨터(140)는 임의의 연관된 메타-데이터와 함께 각각의 ROI의 펠릿성 스코어들을 획득하기 위해 ROI 분류 모듈(162)을 사용하여 ROI 분류를 수행한다. 메타-데이터는, 예를 들어, ROI들이 어떤 카메라로부터 왔는지를 하류측 모듈들 중 하나 이상에게 알려주는 고유 ID 및 각각의 프레임을 고유하게 식별하는 타임스탬프들일 수 있다. 펠릿성 스코어들 및 메타-데이터는 다시 메시징 툴을 통해 추적 모듈(164)에 제공된다. ROI 분류 모듈(162)의 동작은 도 6c와 관련하여 더 상세하게 설명된다.
640에서, 컴퓨터(140)는 ROI들, 연관된 펠릿성 스코어들 및 임의의 적용가능 메타-데이터에 대해 ROI 추적 모듈(164)을 사용함으로써 ROI 추적을 수행한다. ROI 추적 모듈(164)은 새로운 궤적들을 생성하거나, 궤적들을 업데이트하거나 및/또는 완성된 궤적들(업데이트될 수 없는 궤적들)을 생성한다. ROI 궤적 모듈(164)의 출력은 완성된 궤적들이다. ROI 추적 모듈(164)의 동작들은 도 6d 및 도 6e와 관련하여 더 상세하게 설명된다.
650에서, 컴퓨터(140)는 궤적 분류 모듈(166)을 사용하여, 완성된 궤적들에 대한 궤적 분류를 수행한다. 궤적 분류 모듈(166)의 출력은, 완성된 궤적들이 펠릿 또는 비-펠릿 물체로서 카운트되는지 여부이다. 궤적 분류 모듈(166)의 동작은 도 6f와 관련하여 더 상세하게 설명된다.
660에서, 궤적 분류의 결과는, 양어장에 제공될 수 있으며 양어장에 의해 조치될 수 있는 데이터를 결정하기 위해 프로세싱된다. 예를 들어, 궤적 분류의 결과들은, 먹지 않은 사료 펠릿들에 임의의 큰 그래디언트들이 있는 경우 또는 약 1분, 5분, 10분, 15분 또는 그 이상과 같은 특정 시간 간격들에 걸친 먹지 않은 사료 펠릿들의 양이, 사료 공급기 기계(320)에 의해 탱크(110) 내의 물고기에게 제공되는 물고기 사료의 양을 제어하도록 역할하는 API(310)에 또는 직접 사료 공급기 기계(320)에 제공되도록 660에서 프로세싱될 수 있다. 적어도 하나의 구현예에서, 시간 간격은 사전 프로그래밍될 수 있다. 대안적으로, 적어도 하나의 구현예에서, 시간 간격은, 예컨대 API(310)를 통해 최종 사용자에 의해 제공되는 입력에 기초하여 사용 동안 수정될 수 있다.
적어도 하나의 구현예에서, 펠릿 카운팅 알고리즘(600)은, 배출 파이프(112)를 통해 빠져 나오는 낭비된 펠릿들의 총 수의 미리 결정된 퍼센트(예를 들어, 10%, 15%, 20% 또는 다른 퍼센트)로서 피드 카메라(114)를 시야를 통과하는 낭비된 펠릿들의 수를 결정한다. 이러한 미리 결정된 퍼센트는 다양한 방식들로, 예컨대 배출 파이프(112)를 통해 빠져 나오는 물체들의 총 수와 비교한 피드 카메라(114)의 시야를 통과하는 물체들의 알려진 비율을 야기하는 물체 인핸서(116)의 시야 및/또는 크기를 선택함으로써 수립될 수 있으며, 여기서 카운트된 물체들 및 물체들의 총 수는 먹지 않은 음식 펠릿들이다. 대안적으로 또는 추가적으로, 이러한 미리 결정된 퍼센트는 측정에 의해, 예컨대 피드 카메라(114)의 시야를 통과하는 물체들의 수를 측정/카운트하고 배출 파이프(112)를 통해 빠져 나오는 물체들 모두를 수집하기 위해 네트/컨테이너를 사용하며 그런 다음 네트/컨테이너 내의 물체들을 카운팅함으로써 검증될 수 있다. 그러면, 이러한 미리 결정된 퍼센트는, 배출 파이프(112)를 통해 빠져 나오는 낭비된 펠릿들의 총 수를 추론하기 위해 사용될 수 있는 스케일링 인자(예를 들어, 미리 결정된 퍼센트가 10%인 경우에 10, 또는 검증된 퍼센트가 20%인 경우에 5, 또는 피드 카메라, 물체 인핸서 및 배출 파이프의 실제 물리적 셋업에 의존하여 다른 스케일링 인자들)를 제공한다.
대안적으로, 적어도 하나의 구현예에서, 컴퓨터(140)는, 사용자에 의해 업데이트될 수 있는 규칙들의 프레임워크를 사용하여 데이터베이스를 관리하고, 결과들을 최종 사용자에게 디스플레이하며, API(310)와 통합되는 시스템(100)의 부분일 수 있는 백-엔드 서비스에 궤적 분류의 결과를 제공한다. 예를 들어, 이러한 업데이트 규칙은 "지난 10분 동안 카운트된 펠릿들의 수가 특정 수보다 더 작은 경우, 사료공급 레이트를 5%만큼 증가시키고, 해당 수보다 더 큰 경우, 5%만큼 감소시킨다"라는 것일 수 있다. 일부 구현예들에서, 사료공급 레이트에 대한 퍼센트 변화는, 카운트된 펠릿들의 수가 낭비된 펠릿들의 이상적인 수(즉, 설정점)로부터 얼마나 멀리 있는지에 의존하여 가변적일 수 있다.
ROI 제안 모듈 세부사항들
도 6b는 ROI 제안 모듈(160)에 의해 이루어지는 사전-프로세싱(620)을 수행하기 위한 방법의 예시적인 실시예의 순서도를 도시한다. ROI 제안 모듈(160)은, 물체 인핸서(116) 때문에, 2개의 연속적인 이미지 프레임들 사이에서 임의의 상당한 방식으로 변화할 픽셀들만이 잠재적으로 낭비된 사료 펠릿 또는 다른 움직이는 물체를 나타내는 환경에서 동작한다. 환경의 이러한 특성은, 추가적인 고려를 정당화하는 각각의 이미지 프레임의 영역들(예를 들어, 관심 영역들 - ROI들)을 식별하기 위해 사용된다.
622에서, 컴퓨터(140)는 배경 제거를 수행한다. 배경 제거를 수행하기 위해 사용되는 기술들은, 후속 프레임들 사이에서 이동하고 있을 수 있는 물체들을 식별할 수 있는 기술들이다. 예를 들어, 새로운 이미지 프레임을 판독할 때, ROI 제안 모듈(160)은, 비제한적으로, K-최근접 이웃들(K-Nearest Neighbors; KNN) 기반 알고리즘과 같은 배경 제거 알고리즘을 사용하여 새로운 이미지 프레임에 대한 2진 픽셀 마스크를 생성할 수 있다. 이러한 마스크에서, 0의 값을 갖는 픽셀들은 비-이동 배경의 부분으로서 간주되며, 1의 값을 갖는 픽셀들은 움직이는 전경(foreground)의 부분이고 이러한 픽셀들은 움직이는 물체들과 관련될 수 있다.
624에서, 컴퓨터(140)는 잠재적인 ROI들을 결정하기 위해 윤곽 검출을 수행한다. 예를 들어, ROI 제안 모듈(160)은 2진 픽셀 마스크 내의 전경 픽셀들의 각각의 "아일랜드(island)"의 경계들을 추출하기 위해 윤곽 검출 알고리즘을 사용한다. 윤곽 검출 알고리즘은, 예를 들어, 비제한적으로, 픽셀 추종, 정점 추종, 또는 실행-데이터-기반 추종 기술을 포함하는 다양한 적절한 기술들을 사용하여 구현될 수 있다. 사용될 수 있는 픽셀-추종 윤곽 검출 알고리즘의 일 예는 OpenCV 라이브러리에 의해 제공되는 findContours 방법이다. x 방향 및 y 방향 둘 모두에서 각각의 윤곽의 최대 및 최소 포인트를 찾음으로써, ROI 제안 모듈(160)은 각각의 전경 물체 주위에 경계 박스를 정의할 수 있다. 원본 이미지 내의 이러한 경계 박스들의 내용들이 ROI들로서 지칭된다.
실제로, 사료 펠릿들에 대응하지 않는 주어진 이미지 내의 변화하는 픽셀들의 다수의 패치(patch)들이 존재한다. 이러한 픽셀들의 패치들은 배설물들, 거품들, 또는 장비의 움직이는 부분들과 같은 다른 물체들을 나타낼 수 있지만, 때때로 또한 물/공기 계면의 반짝임과 같은 시각적 아티팩트들로부터 유래하기도 한다. 계산 자원들을 낭비하는 것을 방지하기 위해, ROI 제안 모듈(160)은, 626에서 필터링을 수행하는 것에 의한 추가적인 프로세싱을 위해 이들을 전송하기 이전에 비-펠릿 ROI들을 제거하도록 구성될 수 있다.
626에서, 컴퓨터(140)는 사료 펠릿들에 대응하지 않는 임의의 ROI들을 식별하고 제거하기 위해 ROI 필터링(626)을 수행한다. 예를 들어, (1) 하나 이상의 컴퓨터-비전-기반 필터들은 각각의 ROI로부터 특징들을 추출하기 위해 사용될 수 있으며, (2) 그런 다음, 이러한 특징들은 전술한 특징들에 기초하여 어떤 ROI들이 생략될 수 있는지를 결정하기 위해 경험적으로 결정된 임계치들과 비교될 수 있다. 사용될 수 있는 필터의 일 예는, 비제한적으로, 사료 펠릿들이 되기에는 너무 작은 물체들 및 아티팩트들에 대응하는 ROI들을 필터링하여 제거하기 위한 최소 윤곽 크기 요건을 포함한다. 대안적으로, 다른 유형의 필터는, 원형성(circularity) 측정 또는 종횡비와 같은 형상 요건들에 기초할 수 있다.
대안적으로, 특수하게 설계된 필터들의 더 복잡한 세트가 거품들 및 물 반짝임 아티팩트들과 같은 특정 유형들의 원치 않는 물체들을 제거하는 데 효과적일 수 있다. 하나의 접근방식은 ROI의 윤곽 외부와 윤곽들 내부의 픽셀들의 강도들을 비교하는 것이다. 사료 펠릿들의 윤곽을 그리는 윤곽 내부의 픽셀들은 주변 픽셀들보다 더 어두울 것으로 예상된다. 대조적으로, 물 아티팩트들 및 거품들의 윤곽을 그리는 윤곽들은 일반적으로 이러한 가정을 충족시키지 않는다.
사용될 수 있는 또 다른 ROI 필터링 방법은 윤곽과 그 "향상된 윤곽" 카운터파트 사이의 비교 측정들에 기초한다. 전경 마스크들(예를 들어, 배경 제거의 출력)로부터 생성된 ROI 윤과들과는 대조적으로, 적어도 하나의 실시예에서, ROI 제안 모듈(160)은, 물체의 경계가 있는 장소의 제2 추정을 획득하기 위해 원본 이미지에 대해 임계화(thresholding)를 수행함으로써 "향상된 윤곽들"을 생성할 수 있다. 이러한 임계화는, 예를 들어, 물체의 경계를 찾기 위해 어두운 색상인 물체의 속성 및 밝은 색상인 물체 인핸서(116)의 속성을 사용할 수 있다. 제1 및 제2 추정들에서 획득된 2개의 상이한 유형의 윤곽들의 형상은 사료 펠릿들에 대해 유사하지만, 불규칙적인 에지들 및 돌출부들을 갖는 다른 물체들(예컨대, 배설물), 거품들, 및 물 아티팩트들에 대해서는 현저하게 상이하다. 따라서, 제1 및 제2 추정들로부터 서로에 대응하는(예를 들어, 동일한 기본 물체를 나타내는) 물체들에 대한 윤곽들에 대한 형상 측정들이 획득될 수 있으며, 형상 측정들의 차이가 형상 측정 임계 레벨 미만인 경우, 이러한 ROI들은 동일한 물체(예를 들어, 사료 펠릿)에 대한 것일 가능성이 높고 유지될 수 있으며, 반면 형상 측정 임계치보다 더 큰 형상 측정들의 차이를 갖는 다른 ROI들은 제거될 수 있다.
이러한 필터링 방법들이 높은 정확도로 펠릿 ROI들을 식별하는 데 충분하지 않을 수 있고 "펠릿성" 확률을 제공하지는 않지만, 이들은 비-사료-펠릿 ROI들의 상당한 부분을 제거하는 데 도움을 준다. 이러한 스테이지에서 이러한 비-사료-펠릿 ROI들을 제거하는 것은 하류측의 펠릿 카운팅 알고리즘의 계산 효율을 전체적으로 상당히 개선한다.
적어도 하나의 실시예에서, 다수의 필터들은 비-사료-펠릿 ROI들을 제거하기 위해 직렬 방식으로 사용될 수 있다. 예를 들어, 제1 필터 스테이지는 후보 ROI들로부터 측정된 제1 특징에 기초할 수 있으며, 필터링되지 않은 각각의 ROI는 제2 필터 스테이지로 제공되고, 제2 필터 스테이지는 제2 측정 또는 향상된 윤곽 필터링에 기초하는 등이며, 잠재적인 추가적 필터 스테이지들에 대해서도 마찬가지이다.
또한, 적어도 하나의 실시예에서, ROI 필터들은, 배출 파이프 내의 물리적 셋업(예를 들어, 도 4a 및 도 4b의 하드웨어 셋업)과 관련하여 어떤 문제가 있을 때를 식별하고, 예를 들어, 거품들을 식별할 수 있는 필터들 사용하는 것에 기초하여 비정상적인 양의 거품들이 존재할 때 최종 사용자에게 통지하기 위해 사용될 수 있다.
628에서, 컴퓨터(140)는, 626 동안 필터링되지 않는 ROI들에 기초하여 프로세싱되고 있는 주어진 이미지 프레임 내의 후보 ROI들의 세트를 결정한다. 컴퓨터(140)는 또한 피드 카메라(114)의 고유 식별자와 같은 메타-데이터 및 피드 카메라(114)에 의해 획득된 이미지 프레임들의 각각을 고유하게 식별하는 타임스탬프를 생성할 수 있다.
ROI 분류 모듈 세부사항들
도 6c는 ROI 분류 모듈(162)에 의해 수행될 수 있는 ROI 분류 방법(630)의 예시적인 실시예의 순서도를 도시한다. ROI 분류 모듈(162)의 주요 목표는 각각의 ROI에 ROI가 펠릿일 확률("펠릿성" 스코어)을 할당하는 것이다. 방법(630)이 구현될 수 있는 몇몇 방식들이 있지만, 콘볼루션 신경망(convolutional neural network; CNN)을 사용하여 펠릿성 스코어를 획득하는 것이 바람직하다.
CNN 모델들에 기초하는 다수의 분류기들은 복잡한 데이터세트들에 대해 인상적인 결과들을 달성한다. 그러나, 펠릿 또는 펠릿이 아닌 2진 분류 작업의 속성으로 인해, 오버피팅(overfitting)뿐만 아니라 불필요하게 큰 계산 풋프린트를 방지하기 위해 비교적 덜 복잡한 CNN 모델을 사용하는 것이 유리하다. ROI 분류기에 대한 하나의 가능한 구현예는, 특징 추출 네트워크로서 0.25으로 설정된 알파 파라미터를 갖는 MobileNet v2 모델을 사용하고, 그 다음 ReLU 활성화 함수를 갖는 64개의 히든 유닛들을 갖는 조밀 연결 층(densely connected layer)을 사용하며, 3개의 출력 노드들 및 소프트맥스(softmax) 활성화 함수를 갖는 최종 조밀 연결 층을 사용하는 것이다. 그러나, 대안적인 구현예들에서, 다른 분류기들이 사용될 수 있다는 것을 유의해야 한다.
트레이닝 또는 추론을 위해 ROI 분류기에 샘플들(예를 들어, 각각의 샘플은 해당 이미지 프레임으로부터의 ROI 내의 이미지 데이터를 포함하며 프로세싱되고 있는 현재 이미지 프레임으로부터의 주어진 ROI에 대응함)을 입력하기 이전에, ROI들이 64x64 픽셀 크기로 재성형(reshape)되며 또한 평균-중심화 정규화(mean-centering normalization)를 겪도록 사전프로세싱이 ROI들에 대해 수행된다. 이러한 64x64 RGB 이미지 입력 데이터세트들은 ROI 분류기에 대한 유일한 입력들이다. 트레이닝 동안, 회전들, 및 수평/수직 플립들 형태의 랜덤 증강(augmentation)들이 사용된다. 신경망이 전체 펠릿들을 인식하도록만 의도되기 때문에, 전체 펠릿이 표시되는 것을 방해할 수 있는 증강들(예를 들어, 랜덤 크로핑(cropping) 또는 전단(shearing))은 사용되지 않는다. 사전-트레이닝된 가중치들이 또한 사용되지 않을 수 있다(즉, 전이 학습(transfer learning) 없음).
신경망들과 관련된 공통적인 이슈는 이들이 열악한 교정을 갖는다는 점이며, 이는 신경망들이 자신감이 있는 예측만을 하는 경향이 있다는 것을 의미한다. 이는, 주어진 CNN이 잘못된 결정을 내릴 때, 이것이 높은 신뢰도로 이를 수행한다는 사실로 인해 바람직하지 않은 품질이다. 데이터세트들이 ROI 분류기들에 의한 프로세싱을 위해 획득되는 생산 환경에서의 이미지들의 분포에서, 심지어 인간 라벨러들(labeler)도 샘플이 펠릿 또는 비-펠릿 물체인지 여부를 결정하는 데 확신이 부족한 다수의 물체들이 존재한다. 이러한 경우들에서, 펠릿 분류 모델이 이러한 불확실성을 반영하는 확률(즉, 0 또는 1보다는 0.5에 더 가까운 확률)을 생성하는 것이 바람직하다.
열악한 모델 교정의 이슈를 완화하기 위해, 펠릿, 비-펠릿, 및 모호함의 3개의 클래스들에 있는 물체들로 트레이닝 데이터 세트를 구성하는 것을 도움이 된다. 인간 라벨러들은, ROI 제안 모듈(160)에 의해 제공된 ROI들을 이러한 3개의 클래스들 중 하나로서 라벨링하고 이들이 펠릿/비-펠릿의 예측에 완전한 확신이 없을 때마다 모호함 클래스를 사용하도록 지시를 받았다.
인간 라벨러들과 CNN이 ROI 데이터를 보는 방식 사이의 하나의 주요 차이점은, 인간들은 주변(예를 들어, 이전 및 후속) 이미지 프레임들로부터의 상황적 정보에 액세스할 수 있다는 점이다. ROI가 펠릿으로서 라벨링될 수 있는지 여부가 불확실할 때, 인간들은 그들의 결정을 보조하기 위해 이전 프레임 및 후속 프레임 둘 모두를 확인할 수 있다. 주변 프레임들로부터의 정보(예컨대, 이전 프레임에서 보이는 방식 또는 프레임들 사이에서 이것이 이동하는 방식)로 인해 ROI가 명백히 펠릿이었지만 단지 개별적인 프레임만으로부터의 물체를 볼 때 펠릿이 어떤 것인지 덜 명확한 이러한 경우들에서, 라벨러들은 그들의 상황적 정보를 잊어버리고 여전히 모호함 라벨을 사용하도록 지시를 받았다.
모호함 클래스의 추가는, ROI 분류기가 각각의 샘플에 대해 출력한 확률 분포의 의미성(meaningfulness)을 개선하였다. 여기서, 샘플은 단 하나의 물체이며, 확률 분포는 이러한 물체가 (a) 펠릿, (b) 비-펠릿, 및 (c) 모호할 확률로서 정의되며, 여기서 이러한 3개의 확률들의 합은 1과 동일하다(즉, 이는 소프트맥스 분포이다). 일부 시나리오들에서, 진짜 펠릿 궤적은 비-펠릿 물체(예를 들어, 거품 또는 배설물의 조각)와 약간 중첩하는 중간에서 하나의 ROI를 가질 수 있으며, 이는 해당 ROI에 0.0의 펠릿성 스코어가 할당되게 할 것이고, 이는 해당 ROI가 추적기에 의해 생략되게 할 것이다. 이러한 방법을 채택함으로써, 분류 모델은 해당 ROI에 여전히 낮은 스코어를 줄 수 있지만, 이러한 스코어는 이것이 추적기에 의해 무시될 정도로 낮지는 않다. 이러한 기술을 채택하는 것은 또한, 궤적 분류 모델(166)이 펠릿과 비-펠릿 물체 궤적들을 효과적을 분리하기 위한 능력을 개선하였다.
적절한 성능을 달성하기 위해, 각각의 클래스에 대한 적어도 5000개의 샘플들이 ROI 분류 모델을 트레이닝시키기 위해 사용될 수 있다. 이러한 샘플들은 가능한 한 많은 시나리오들(예를 들어, 상이한 조명 조건들 또는 배출 파이프 흐름 레이트들)로부터 나올 수 있다. 분류 모델의 미세 튜닝은 새로운 환경들로 이동할 때 필요할 수 있다.
632에서, 컴퓨터(140)는 프로세싱되고 있는 현재 이미지 프레임 및 ROI들에 대한 좌표들을 획득한다. 각각의 ROI에 대한 이미지 데이터를 나타내는 샘플들이 획득된다. 634에서, 샘플들은, 이들이 각각 동일한 크기를 갖는 매트릭스들에 의해 표현되도록 각각의 ROI에 대해 재성형 및 평균-중심화 정규화를 수행함으로써 이상에서 설명된 바와 같이 수행될 수 있는 사전프로세싱된다.
636에서, 각각의 사전프로세싱된 샘플은 ROI 분류기에 적용되며, 이는 각각의 샘플에 대한 확률 분포를 생성한다. ROI 분류기는 이상에서 설명된 바와 같은 CNN-기반 분류기일 수 있다. 이는 소프트맥스 분포와 같은 이산 확률 분포일 수 있다. 예를 들어, 각각의 샘플에 대해, 확률 분포는, 합계하여 1이되며 기초 물체가 ROI 분류기에 의해 사용되는 클래스들 중 하나에 속할 가능성을 나타내는 확률 스코어를 포함한다. 그러면, 주어진 샘플에 대한 확률 분포는, 샘플에 대응하는 물체가 펠릿일 제1 확률, 이러한 물체가 비-펠릿일 제2 확률, 및 그 물체가 모호할 제3 확률을 포함한다. 예를 들어, CNN 분류기는 주어진 샘플에 대해, 펠릿 클래스에 대해 0.8, 모호함 클래스에 대해 0.15, 및 비-펠릿 클래스에 대해 0.05로서 확률 분포를 제공할 수 있다.
638에서, 각각의 샘플에 대해 가장 높은 확률이 샘플에 대응하는 물체에 대한 ROI를 펠릿, 비-펠릿, 또는 모호함 중 하나로서 라벨링하기 위해 사용된다. 데이터 파일들(168) 또는 데이터베이스는, ROI 분류 모듈(164)에 의해 프로세싱되는 각각의 ROI에 대한 분류들의 추적을 유지하기 위해 업데이트될 수 있다.
ROI 추적 모듈 세부사항들
도 6d는, 펠릿들로서 분류된 ROI들에 기초하여 ROI 추적 모듈(164)에 의해 수행될 수 있는 ROI 추적 모듈(640)의 예시적인 실시예의 순서도를 도시한다. 목표가 펠릿들을 카운트하는 것이고 펠릿들은 비디오 피드의 다수의 이미지 프레임들에 존재하기 때문에, 펠릿 추적기(159)는 연속적인 이미지 프레임들에 걸쳐 이들을 여러 번 카운트하는 것을 피하기 위해 식별된 각각의 펠릿을 추적할 수 있다.
OpenCV으로부터의 것들과 같은 추적 알고리즘들의 다수의 오픈-소스 구현들은 불충분하거나 또는 비효율적이다. 전형적으로, 이러한 알고리즘들은 이미지 패치들(예를 들어, ROI들)로 초기화되며, 다음 이미지(예를 들어, 비디오의 다음 프레임) 내의 유사한 이미지 패치를 찾음으로써 동작한다. 이러한 방법들이 이미지 패치들에 대해 동작하기 때문에, 이들은 최신 육상-기반 양어장들의 스케일에서는 계산하기 어렵다. 또한, 이들은, 기존 궤적에 ROI를 추가할지 여부를 결정할 때 펠릿성 스코어를 사용할 기회를 제공하지 않는다.
그러나, 본원의 교시들에 따르면, 이미지 패치들을 사용하는 것이 아니라, 펠릿 카운팅 알고리즘은 펠릿성 스코어들 및 각각의 ROI의 중심의 좌표들을 사용하여 동작한다. 전반적으로, 펠릿성 스코어는 ROI가 추적할 가치가 있는지 여부를 결정하고, 그런 경우, (1) 프로세싱되고 있는 현재 ROI로 새로운 궤적을 시작할지, 또는 (2) 해당 ROI를 기존 궤적에 추가할지 여부를 결정하기 위해 사용된다.
642에서, ROI 추적 모듈(164)은, 펠릿들로서 분류된 주어진 ROI(즉, "펠릿 ROI들")에 대해 단일 이미지 프레임으로부터 ROI 데이터를 수신한다. 이러한 ROI 데이터는 ROI의 위치(예를 들어, ROI에 대한 좌표들) 및 ROI 분류 모듈(162)에 의해 결정된 ROI들이 펠릿에 대응할 확률인 "펠릿성 ROI 스코어"를 포함할 수 있다. 이러한 ROI 데이터는 또한, 피드 카메라(114)에 대한 식별자 및 현재 프로세싱되고 있는 이미지 프레임이 획득되었던 시간을 나타내는 타임스탬프와 같은 메타-데이터를 포함할 수 있다.
644에서, 컴퓨터(140)는, ROI 분류기에 의해 수행된 분류 이후에, ROI 스코어가, ROI가 다른 클래스에 속할 가능성보다 펠릿일 가능성이 더 높다는 다른 체크인 임계치 스코어를 충족시키는지 여부를 결정한다. 이러한 비교가 참인 경우(즉, 예, ROI 스코어가 임계 스코어를 충족시키는 경우), ROI는 후보 ROI로 지칭될 수 있으며, 방법(640)은 645로 진행한다.
644에서의 비교가 거짓인 경우(즉, 아니오, ROI 스코어가 임계 스코어를 충족시키지 않는 경우), 방법(640)은 646으로 진행하며, 여기서 물체가 폐기되고 더 이상 추적되지 않는다. 임계 스코어는 경험적으로 결정될 수 있다.
645에서, 컴퓨터(140)는 후보 ROI를 포함할 궤적을 결정하며, 이는 현재 추적되고 있는 궤적들과 ROI에 대응하는 물체의 위치를 비교하는 것을 수반할 수 있다. 예를 들어, 평가되고 있는 후보 ROI와 평가되고 있는 후보 ROI에 가장 가까운 기존 궤적의 "테일(tail)"(예를 들어, 마지막 ROI) 사이의 거리가 미리 결정된 거리 임계치(예를 들어, 유클리드 거리와 관련됨)보다 더 클 때, 시작 지점으로서 평가되고 있는 현재 ROI를 사용하여 흐름을 따른 새로운 궤적이 시작될 수 있다. 대안적으로, 전술한 거리가 거리 임계치보다 더 작은 경우, ROI 추적 모듈(164)은 평가되고 있는 현재 ROI를 기존의 가장 가까운 궤적에 추가한다. 646에서의 평가는, 예를 들어, 도 6e의 방법(700)을 사용하여 수행될 수 있다.
647에서, 현재 이미지 프레임에 대해 평가할 다른 ROI들이 있는지 여부가 결정된다. 평가할 ROI들이 더 있는 경우, 방법(600)은 642로 복귀한다.
현재 이미지에 대해 모든 ROI들이 프로세싱된 경우, 방법(640)은 648로 진행하며, 여기서 ROI 추적 모듈(164)은, 프로세싱되고 있는 현재 이미지 프레임 이전에 존재했던 임의의 궤적들이 현재 이미지 프레임 내의 ROI들 중 임의의 것으로 업데이트되지 않았는지 여부를 결정한다. 이러한 궤적들의 각각은 "완성된 궤적"으로 지칭된다. ROI 추적 모듈(164)은, 그 후에 궤적 분류 모듈(166)에 제공될 수 있는 임의의 완성된 궤적들을 식별한다.
도 6e는, ROI들을 기존 궤적에 또는 새로운 궤적에 할당하기 위한 방법(650)의 예시적인 실시예의 순서도를 도시한다. 방법(650)은, 컴퓨터(140)에 의해 실행될 때 ROI 추적 모듈(164)에 의해 수행될 수 있다. 이러한 예시적인 실시예에서, 방법(650)은 배치 프로세싱 방법으로서 구현되며, 이는, 몇몇 이미지 프레임들을 연속적으로 프로세싱할 뿐만 아니라 현재 이미지 프레임 내의 도 6d에 대해 이전에 설명된 바와 같은 ROI 펠릿성에 기초하여 폐기되지 않았던 모든 ROI들에 대해 동작할 수 있다. 적어도 하나의 구현예에서, 방법(650)은 이미지 프레임 단위로 컴퓨터(140)에 의해 수행되며, 여기서 컴퓨터(140)는 특정 이미지 프레임에서 발견되었던 모든 ROI들을 입력들로서 수신한다.
652에서, 컴퓨터(140)는 현재 이미지 프레임으로부터 후보 ROI들 및 펠릿성 스코어들을 획득한다. 654에서, 임의의 후보 ROI들이 없는지 여부가 결정된다. 이러한 결정이 참인 경우, 방법(650)은 656으로 진행하며, 여기서 다음 이미지 프레임이 로딩될 수 있고, 그런 다음 방법(650)은 652로 복귀하며, 여기서 해당 다음 이미지 프레임에 대한 후보 ROI들에 대한 데이터가 획득된다. 양자택일적으로, 654에서의 결정이 거짓인 경우, 방법(650)은 658로 진행한다.
658에서, 후보 ROI들이 없는지 여부 및 활성 궤적들이 있는지 여부가 결정된다. 이러한 결정이 참인 경우, 이는, 활성 궤적들에 추가할 ROI들이 없다는 것을 의미하며, 이러한 경우 방법(650)은 660으로 진행한다. 658에서의 결정이 거짓인 경우, 방법(650)은 662로 진행한다.
660에서, 활성 궤적들이 종료되고, 그런 다음 완성된 궤적들로서 식별될 수 있다. 활성 궤적은, 이전 이미지 프레임에서 ROI가 이에 추가된 궤적이다. 이러한 시점에, 방법(650)은 다음 이미지 프레임에 대한 후보 ROI들을 프로세싱하기 위해 656으로 진행할 수 있거나, 또는 방법(650)은 종료될 수 있다(미도시).
662에서, 후보 ROI들이 있는지 여부 및 활성 궤적들이 없는지 여부가 결정된다. 이러한 결정이 참인 경우, 이는, 후보 ROI들을 추가할 활성 궤적들이 없다는 것 및 이들이 새로운 궤적들에 추가될 수 있다는 것을 의미하며, 이러한 경우 방법(650)은 664로 진행한다. 662에서의 결정이 거짓인 경우, 방법(650)은 666으로 진행한다.
664에서, 새로운 활성 궤적이 각각의 후보 ROI에 대해 생성되며, 여기서 후보 ROI는 새로운 궤적에 대한 시작 노드 또는 물체이다. 이러한 시점에, 방법(650)은 다음 이미지 프레임에 대해 후보 ROI들을 프로세싱하기 위해 666으로 진행할 수 있거나, 또는 방법(650)은 종료될 수 있다(미도시).
666에서, 상황은 처음에는 일부(즉, 적어도 하나의) 후보 ROI들 및 적어도 하나의 활성 궤적이 있다는 것이다. 방법(650)이 666, 668, 670, 및 672에 걸쳐 반복됨에 따라, 666이 수행될 때마다 평가해야 할 후보 ROI가 있는지 여부가 결정된다. 이러한 결정이 참인 경우, 방법(650)은 668로 진행한다. 이러한 결정이 거짓인 경우, 방법(650)은 660으로 진행한다.
668에서, 방법(650)은, 후보 ROI들이 활성 궤적에 속하는지 여부 또는 하나 이상의 새로운 활성 궤적들이 생성될지 여부를 결정하는 단계를 수반한다. 이는, 활성 궤적까지의 후보 ROI의 거리와 거리 임계치를 비교하는 것에 기초하여 활성 궤적과 매칭되거나 또는 이에 대응하는 후보 ROI들의 위치를 찾음으로써 결정될 수 있다. 이는, 현재 후보 ROI의 위치(예를 들어, 중심) 및 활성 궤적들의 테일 위치(예를 들어, 가장 최근에 추가된 ROI의 위치)로부터의 거리(예를 들어, 유클리드)에 대한 쌍 거리들을 결정하고 가장 작은 쌍 거리를 결정함으로써 수행될 수 있다.
그런 다음, 방법(650)은 670으로 진행하며, 여기서 대응하는 가장 가까운 활성 궤적에 대한 각각의 후보 ROI에 대한 가장 작은 쌍 거리는 거리 임계치와 비교된다. 쌍 거리가 거리 임계치보다 더 작은 경우, 방법(650)은 672로 진행한다.
672에서, 후보 ROI는 가장 가까운 활성 궤적에 추가된다. 그런 다음, 후보 ROI 및 이것의 가장 가까운 활성 궤적은 고려사항으로부터 제거되며, 방법(650)은 평가되어야 하는 임의의 다른 후보 ROI들이 있는지 여부를 결정하기 위해 666으로 이동한다.
670에서의 결정이 거짓인 경우, 방법(650)은 664로 진행하며, 이러한 지점에서 새로운 궤적이 현재 후보 ROI에 대해 생성된다. 그런 다음, 방법(650)은 평가할 추가적인 후보 ROI들이 존재하는지 여부를 결정하기 위해 666으로 진행한다. 방법(650)이 666으로 진행하기 이전에, 컴퓨터(140)는 마지막으로 생성된 궤적 및 ROI를 다음 루프 반복에서의 고려사항으로부터 제거한다. 평가할 다른 후보 ROI들이 없는 경우, 방법(650)은 660으로 진행한다.
궤적 분류 모듈 세부사항들
도 6f는 컴퓨터(140)에 의해 실행될 때 궤적 분류 모듈(166)에 의해 수행될 수 있는 궤적 분류 방법(680)의 예시적인 실시예의 순서도를 도시한다. 적어도 하나의 실시예에서, 방법(680)은, 궤적이 "활성"으로부터 "완성된" 상태로 진행할 때마다 수행된다. 대안적인 구현예에서, 방법(680)은 프로세싱 요건들을 감소시키기 위해 가능한 궤적들의 서브세트에 걸쳐 수행된다.
이러한 시점에서 충분히 높은 펠릿성 스코어를 갖는 모든 ROI는 궤적의 부분이지만, 반드시 이러한 궤적들 모두가 펠릿들인 것은 아니다. 개별적인 물체들이 상이한 이미지 프레임들에서 상당히 상이하게 나타날 수 있기 때문에, 물체는 하나 이상의 이미지 프레임들에서 더 펠릿처럼 보이며 하나 이상의 다른 이미지 프레임들에서 더 비-펠릿 물체처럼 보일 수 있다. 비제한적으로, 궤적의 길이, 궤적에서 추적되고 있는 물체의 ROI들의 펠릿성 스코어들의 분포, 및 하나 이상의 다른 필터 값들의 통계적 분포들의 적어도 하나의 측정치(예를 들어, 평균, 표준 편차, 특정 백분위수, 등)과 같은 전체 궤적의 속성들을 고려함으로써, 궤적 분류 모듈(166)은, 펠릿과 또는 비-펠릿 물체와 연관될 가능성이 가장 높은 궤적으로서 각각의 궤적의 최종 분류를 할 수 있다.
681에서, 방법은, 현재 궤적 내의 ROI들에 대한 데이터를 획득하는 단계를 수반한다. 682에서, 궤적 측정치들은, 궤적의 길이, 궤적 내의 ROI들에 대한 펠릿성 스코어들의 분포, 및/또는 하나 이상의 다른 필터값들에 통계적 분포들의 적어도 하나의 측정을 포함하여, 현재 궤적 내의 ROI들에 기초하여 이루어진다. 적어도 하나의 실시예에서, 펠릿성 스코어들의 평균만이 사용된다. 대안적으로, 적어도 하나의 실시예에서, 평균뿐만 아니라 25번째/50번째/75번째 백분위수들이 사용되며, 이는 펠릿 분류 모델들에 의해 보여지는 궤적의 훨씬 더 명확한 사진을 야기할 수 있다.
683에서, 궤적 측정치들은, 이들이 획득되었던 궤적들이 펠릿 궤적으로서 분류될 수 있는지 여부를 결정하기 위해 평가된다. 적어도 하나의 실시예에서, 이러한 평가는, 궤적이 펠릿 궤적 클래스 또는 비-펠릿 궤적 클래스에 속할 확률을 제공하는 궤적 분류기에 궤적 측정치들을 제공함으로써 이루어질 수 있다. 이는, 랜덤 포레스트(random forest) 또는 XGBoost와 같은 로지스틱 회귀 또는 트리 기반 모델과 같은 선형 모델로 이루어질 수 있다. 대안적으로, 적어도 하나의 실시예에서, 이러한 평가는, 적어도 하나의 궤적 측정치들을 경험적 데이터를 사용하여 결정된 대응하는 궤적 측정 임계치와 비교함으로써 이루어질 수 있다. 이러한 실시예들에서, 궤적 측정 임계치를 통과하는 더 많은 궤적 측정치들이 있는 경우, 이는, 현재 궤적이 먹지 않은 사료 펠릿의 궤적일 가능성이 높다는 것을 나타내고, 방법은 궤적이 펠릿 궤적으로 분류되는 685로 진행한다. 그런 다음, 방법(680)은 686으로 진행한다.
683에서의 결정이 거짓인 경우, 방법(680)은 684로 진행하며, 여기서 대응하는 물체의 궤적 및 대응하는 ROI들이 폐기된다. 그런 다음, 방법(680)은 686으로 진행한다.
686에서, 분류할 다른 궤적들이 있는지 여부가 결정된다. 이러한 결정이 참인 경우, 방법(680)은 681로 복귀한다. 이러한 결정이 참이 아닌 경우, 방법(680)은 687로 진행하여 종료된다.
적어도 하나의 실시예에서, 방법(600), 또는 방법의 서브세트는, 획득된 이미지들 내의 물체들이 정의가능 주변부를 갖도록 피드 카메라(114)에 대해 배경을 제공하기 위해 피드 카메라(114) 반대편에 그리고 피드 카메라의 시야 내에 배출 파이프(112)의 출구에 인접하여 물체 인핸서(116)를 장착하는 단계; 및 피드 카메라(114)에 의해 획득된 비디오 피드가 물체 인핸서(116)의 이미지들인 이미지 프레임들을 포함하고, 이미지들이 획득될 때 피드 카메라(114)의 시야를 가로지르는 물체들을 포함하도록 피드 카메라(114)를 물체 인핸서(116)에 고정하는 단계를 더 포함한다.
적어도 하나의 실시예에서, 물고기를 포함하는 탱크(110)를 갖는 육상-기반 양어장에서 사료공급 모니터링을 위한 시스템(100)은: 탱크(110)에 결합된 배출 파이프(114)에 장착되는 피드 카메라(114)로서, 피드 카메라(114)는 각각의 이미지가 획득될 때 피드 카메라(114)의 시야를 가로지르는 물체들의 이미지들을 포함하는 비디오 피드를 캡처하도록 구성되고, 물체들은 펠릿들 및 비-펠릿 물체들을 포함하는, 피드 카메라; 및 실행될 때 프로세싱 유닛(144)이 방법(600) 또는 방법(600)의 서브세트를 수행하게 하는 저장된 명령어들을 갖는 메모리 유닛(156) 및 프로세싱 유닛(144)을 포함하는 컴퓨터(140)를 포함한다.
도 7a는 배출 파이프(112)에서 사용되는 하드웨어 셋업(700)의 예시적인 실시예의 사시도를 도시한다. 도 7b는 도 7a에 도시된 예시적인 실시예의 단면도를 도시한다. 피드 카메라(114)는, 피드 카메라(114)의 시야가 물체 인핸서(116)의 전체 또는 상당한 부분을 캡처할 수 있도록 그리고 또한 피드 카메라(114)와 물체 인핸서(116)의 하부 표면 사이에 고정된 거리가 존재하도록 2개의 부재들(708m1 및 708m2)로 형성된 브래킷(708)에 연결될 수 있다. 브래킷(708)의 부재들(708m1 및 708m2)은, 바깥쪽으로 연장되는 측방 탭들이며 물체 인핸서(116)의 하부 표면이 이동가능하게 결합되는 포스트들(710p)을 갖는 제2 브래킷(710)에 연결되는 상부 단부들을 가질 수 있다. 부재들(708m1 및 708m2)의 하부 부분은, 브래킷(708)이 다양한 직경들을 갖는 배출 파이프들(112)에 끼워 맞춰지는 것을 가능하게 하기 위해 대응하는 측방 탭들이 연장되거나 또는 수축될 수 있도록 부재들(708m1 and 708m2)이 서로에 대해 슬라이드할 수 있도록 하는 채널(708c)(이들 중 하나만이 보임)을 갖는다. 측방 연장 탭들이 배출 파이프(112)의 에지와 중첩하도록 부재들(708m1 및 708m2)이 적절하게 위치될 때, 부재들(708m1 및 708m2)을 서로 고정하기 위해 체결구가 채널(708c)에 적용될 수 있다. 피드 카메라(114)는, 피드 카메라(114)의 시야가 물체 인핸서(116)를 향해 지향되도록 부재들(708m1 및 708m2)의 하부 수평 섹션들 상에 장착될 수 있다. 하드웨어 셋업(700)의 적어도 하나의 구현예에서, 물체 인핸서(116)는 배출 파이프(112)에 인접하여 슬라이드가능하게 장착되고 피드 카메라(114)는 물체 인핸서(116)로부터 떨어진 고정된 거리에서 물체 인핸서(116)에 결합되며, 그 결과 물체 인핸서(116)는, 상이한 양의 물 흐름이 배출 파이프(112)를 빠져 나가고 피드 카메라(114)가 물체 인핸서(116)로부터 떨어진 고정된 거리에 남아 있을 때 위로 그리고 아래로 움직일 수 있다. 적어도 하나의 실시예에서, 채널(708c)은 또한 피드 카메라(114)를 브래킷(708)에 고정하기 위해 나사와 같은 체결구에 의해 맞물릴 수 있다.
U-형상의 브래킷일 수 있는 제2 브래킷(710)은, 측방으로 연장되며 포스트들(710p)과 결합되는 탭을 각각 갖는 2개의 수직 부재들(710v1 및 710v2)을 갖는다. 부재들(710v1 및 710v2)의 상부 측방 탭들은 체결구들을 통해 브래킷(708)의 상부 탭들에 고정된다. 브래킷(710)은 또한, 수직 부재들(710v1 및 710v2)의 하부 단부 부분들에 결합되는 하부 부재들(710m1 및 710m2)을 포함한다. 부재들(710m1 및 710m2)은 서로에 대해 이동가능하며, 도 4a 내지 도 4b의 브래킷 구성에 대해 설명된 것과 유사한 방식으로 서로 맞물린다.
제2 브래킷(710)의 상부 측방 탭들은, 이것이 물체 인핸서(116) 및 피드 카메라(114)가 회전하는 능력을 제한하지만, 배출 파이프(112) 내의 수압이 변화하여 물 흐름이 배출 파이프(112)를 빠져 나가게 함에 따라 물체 인핸서(116)가 상승하고 하강하는 것을 가능하게 하는 방식으로 이것을 그곳에서 제위치에 홀딩하기 위해 배출 파이프(112)에 고정될 수 있다. 브래킷(708), 브래킷(710), 및 포스트들(710)은 함께, 도 7c에 도시된 브래킷 구성(740) 또는 장착 어셈블리로서 지칭될 수 있다. 도 7d는 그 위에 배치된 물체 인핸서(116)를 갖는 브래킷 구성(740)을 도시한다. 피드 카메라(114)는 이를 네트워크 연결(예를 들어, 이더넷 케이블)에 연결하기 위한 와이어를 가질 수 있다. 대안적으로, 피드 카메라(114)는 이더넷 스위치(120)에 대한 무선 연결을 가질 수 있다.
예를 들어, 브래킷(710)은, 물체 인핸서(116)가 배출 파이프(112)의 출구 포트 위에 위치되고 위쪽으로 이동할 수 있어서 물체 인핸서(116)의 하단 표면과 출구 포트의 상부 표면 사이에 갭(gap)을 제공하여 배출 파이프(112) 내의 수압의 증가가 존재할 때 물 흐름이 배출 파이프(112)를 빠져 나가는 것을 가능하게 하도록 배출 파이프(112)의 출구 포트 또는 개구에 장착될 수 있다. 이를 달성하기 위해, 브래킷(710)은, 물체 인핸서(116)의 에지들 중 2개의 부분들에 있는 홈들(116g)에 의해 슬라이드가능하게 맞물리는 포스트들(710p) 형태의 슬라이딩 메커니즘을 포함한다. 수압이 감소할 때, 물체 인핸서(116)는 아래쪽으로 이동할 수 있다. 수압이 증가할 때, 물체 인핸서(116)는 위쪽으로 이동할 수 있다.
도시되지는 않았지만, 물체 인핸서(116)가 브래킷(710)의 포스트들(710p)로부터 분리되고 배출 파이프(112)의 출구 포트로부터 멀리 부유하는 것을 방지하기 위해 유지 요소가 사용될 수 있다. 예를 들어, 포스트들(710p)의 단부 부분들은, 물 흐름이 물체 인핸서(116)를 포스트들(710p)의 상단으로 리프트하고 물체 인핸서(116)가 배출 파이프(112)의 출구 포트에서의 마운트(예를 들어, 브래킷(710)의 포스트들(710p))로부터 분리되는 것을 방지하기에 충분히 강할 때 이들이 물체 인핸서(116)의 상부 표면과 맞물리도록 구근형 단부를 갖거나 또는 바깥쪽으로 플레어될 수 있다.
선택적으로, 적어도 하나의 실시예에서, 조명은 물체 인핸서(116)를 향해 지향되는 광을 생성하도록 장착될 수 있다. 이러한 경우들에서, 조명은 브래킷(710)에 고정될 수 있다.
본원에서 설명되는 실시예들 중 적어도 하나에서 실현되는 하나의 기술적 이점은, 펠릿 카운팅 알고리즘이 개별적인 낭비된(즉, 먹지 않은) 펠릿들을 효과적으로 카운트하고 추적한다는 점이다. 이는, 다른 접근방식들이 (1) 펠릿 활동의 강도를 측정하거나(예를 들어, 폐기물의 상대적인 레벨을 나타내기 위해 주어진 이미지 프레임 내의 펠릿들의 수를 검출하며 따라서 이들은 낭비되는 펠릿들의 수를 실제로 측정하려고 시도하지는 않음) 또는 (2) 펠릿들의 작은 단면만을 추적(그럼으로써 잠재적으로 부정확한 추정치를 제공함)하기 때문이다. 대조적으로, 본원의 교시들에 따른 펠릿 카운팅 알고리즘은 추정치가 아니라 정확한 측정치를 제공하기 위해 실시간으로 특정 시간 간격들에 걸쳐 피드 카메라의 시야를 통과하는 개별적인 낭비된 펠릿들을 실제로 카운트한다. 배출 파이프 내의 유체 역학에 의존하여, 펠릿들이 피드 카메라를 지나 이동할 때 배출 파이프의 측면들에 접근하여 피드 카메라의 시야 밖에 있는 작은(그리고 아마도 무시할 수 있는) 수의 펠릿들이 있을 수 있다. 이러한 경우에, 펠릿 카운트는 배출 파이프의 출구를 통과하는 펠릿들의 100%가 되는 것이 아니라, 이상에서 설명된 바와 같은 스케일링 이후에, 95% 또는 99%와 같이 약간 더 낮을 수 있다. 피드 카메라의 시야를 통과하는 낭비된 펠릿들(예를 들어, 먹지 않은 펠릿들)의 수는 배출 파이프를 통해 빠져 나가는 낭비된 펠릿들의 총 수의 미리 결정된 퍼센트(예를 들어, 10% 또는 20%)일 수 있으며, 이들은 그 후에 배출 파이프를 통해 탱크를 빠져 나가는 낭비된 펠릿들의 총 수를 추정하기 위해 스케일링 인자(예를 들어, 미리 결정된 퍼센트가 10%인 경우 10, 또는 미리 결정된 퍼센트가 20%인 경우 5)에 의해 스케일링 업될 수 있고, 여기서 미리 결정된 퍼센트는 이상에서 설명된 바와 같이 검증을 통해 결정된다.
본원에서 설명되는 실시예들 중 적어도 하나에서 실현되는 다른 기술적 이점은, AI-기반 물고기 사료공급 시스템이 최소 계산 요건들로 낭비 펠릿들의 훨씬 더 정확한 카운트를 생성하기 위해 육상-기반 재순환 양식 시스템들의 인프라스트럭처를 활용한다는 점이다. 이는, 종래의 시스템들에 적용되는 모든 다른 접근방식이 일반적인 수중 환경에서 낭비된 펠릿들의 수의 추정치(정확한 카운트가 아님)를 생성하려고 시도하기 때문이다. 더 작은 물리적 영역에서 물고기 사료공급을 모니터링하기 위해 환경을 사용/조작하는 것(특히 육상-기반 시스템들의 출구 파이프를 사용하는 것)에 추가하여 펠릿 카운팅 알고리즘은 본원의 교시들에 대해 고유하며, (예를 들어, 대규모 데이터 세트들을 프로세싱하는 CNN들에 대해 일반적으로 필요한 높은 계산 능력을 갖는 하나 이상의 GPU들을 필요로 하지 않기 위해) 계산 요건들을 제한하면서 모든 낭비되는 사료 펠릿들을 카운트할 수 있는 데 도움이 된다.
본원에서 설명되는 실시예들 중 적어도 하나에서 실현되는 다른 기술적 이점은, 펠릿 카운팅 알고리즘이 낭비된 사료의 연속적인 측정을 가능하게 하지만 반면 다른 방법들은 이산적인 측정을 생성한다는 점이다. 이는, 펠릿 카운팅 알고리즘이, 결과적으로 미래의 사료공급 요건들을 결정하기 위해 사용될 수 있는 현재의 사료공급 요건들을 실시간으로 이해하기 위해 다른 실시간 데이터 소스들과의 통합을 가능하게 하기 때문이다.
적어도 하나의 실시예에서, 물체 인핸서는, 컴퓨터가, 예를 들어, GPU들과 같은 충분히 높은 프로세싱 능력을 갖는 프로세서들을 이용할 때 사용되지 않을 수 있다는 것을 유의해야 한다. 이러한 실시예에서, ROI 제안 모듈 및 ROI 분류 모듈은 Faster-RCNN와 같은 멀티-스테이지 모델 또는 YOLO와 같은 단일-숏-검출기(single-shot-detector; SSD)와 같은 물체 검출 신경망의 엔드-투-엔드 변형으로 대체될 수 있다.
적어도 하나의 실시예에서, 펠릿 카운팅 알고리즘은, 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 펠릿 카운트에 기초하여 제어 신호를 생성하고 제어 신호를 양어장의 물고기 사료공급기 기계로 전송하도록 추가로 구성될 수 있다는 것을 유의해야 한다. 제어 신호는 펠릿들을 카운트하기 위해 사용되는 간격들에 비례하는 간격들로 업데이트될 수 있거나, 또는 제어 신호는, 양어장의 탱크에서 최근에 발생한 이슈들이 존재할 수 있다는 것을 나타내도록 설정된 임계치를 초과하는 먹지 않은 물고기 사료(즉, 먹지 않은 사료 펠릿들)의 그래디언트의 변화가 존재할 때 즉시 업데이트될 수 있다.
본원에서 설명된 출원인의 교시들이 예시적인 목적들을 위해 다양한 실시예들과 관련하여 설명되었지만, 본원에서 설명되는 실시예들과 같은 이러한 실시예들에 한정되지 않는 출원인의 교시들은 예들로서 의도된다. 반면, 본원에서 설명되고 본원에서 예시되는 출원인의 교시들은, 전반적인 범위가 첨부된 청구항들에서 정의된, 본원에서 설명된 실시예들로부터 벗어나지 않고, 다양한 대안예들, 수정예들, 및 등가물들을 포괄한다.

Claims (36)

  1. 물고기를 포함하는 탱크 및 상기 탱크에 결합된 배출 파이프를 갖는 육상-기반 양어장에서 사료공급 모니터링을 위한 시스템으로서, 먹지 않은 사료 펠릿(pellet)들 및 비-펠릿 물체들은 상기 배출 파이프를 통해 출구 포트로 흐르며, 상기 시스템은,
    각각의 이미지가 획득될 때 피드 카메라의 시야를 가로지르는 물체들을 포함하는 상기 배출 파이프의 내부의 이미지들을 포함하는 비디오 피드를 캡처하도록 구성된 상기 피드 카메라로서, 상기 물체들은 상기 먹지 않은 사료 펠릿들 및 상기 비-펠릿 물체들을 포함하는, 상기 피드 카메라;
    상기 피드 카메라와 물체 인핸서(object enhancer) 사이를 통과하며 상기 비디오 피드의 적어도 하나의 획득된 이미지에 캡처되는 물체들이 상기 적어도 하나의 획득된 이미지에서 정의가능 주변부를 갖도록 상기 피드 카메라에 대한 배경을 제공하기 위해 상기 피드 카메라의 시야 내에 그리고 상기 피드 카메라 반대편에 있는 상기 물체 인핸서; 및
    적어도 하나의 프로세서, 및 실행될 때 상기 적어도 하나의 프로세서가 다음의 단계들을 수행하게 하는 저장된 명령어들을 갖는 비-일시적인 컴퓨터-판독가능 저장 매체를 포함하는 컴퓨팅 디바이스를 포함하며, 상기 단계들은,
    주어진 시간 간격 동안 상기 비디오 피드로부터 몇몇 이미지들을 획득하는 단계;
    각각 상기 이미지들 내의 고유 물체들에 대응하는 후보 관심 영역(region of interest; ROI)들을 획득하기 위해 상기 이미지들을 사전프로세싱하는 단계로서, 상기 물체들은 잠재적으로 사료 펠릿들인, 단계;
    상기 후보 ROI에 대응하는 상기 물체가 사료 펠릿 클래스에 속할 확률을 나타내는 펠릿성 스코어(pelletness score)를 획득하기 위해 상기 후보 ROI들에 대해 분류를 수행하는 단계;
    유지된 후보 ROI들이 상기 사료 펠릿 클래스에 속할 가능성이 더 높을 가능성에 기초하여 상기 후보 ROI들을 유지할지 여부를 결정하는 단계;
    상기 유지된 후보 ROI들의 각각을 궤적들에 할당하는 단계;
    상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하는 단계; 및
    상기 펠릿 궤적들에 기초하여 실시간으로 펠릿 카운트를 생성하는 단계로서, 상기 펠릿 카운트는 상기 탱크에서 상기 물고기에 의해 소비되지 않은 상기 먹지 않은 사료 펠릿들의 미리 결정된 퍼센트를 나타내는, 단계를 포함하는, 시스템.
  2. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는 상기 펠릿 카운트를 상기 양어장으로 전송하도록 더 구성되며, 상기 펠릿 카운트는 적어도 부분적으로 상기 펠릿 카운트에 기초하여 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 물고기 사료공급 기계에 의해 사용되는, 시스템.
  3. 청구항 1에 있어서,
    상기 적어도 하나의 프로세서는, 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 상기 펠릿 카운트에 기초하여 제어 신호를 생성하고 상기 제어 신호를 상기 양어장의 물고기 사료공급기 기계로 전송하도록 더 구성되는, 시스템.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 시간 간격에서 상기 먹지 않은 사료 펠릿들의 그래디언트(gradient)들을 결정하고, 상기 그래디언트들이 그래디언트 임계치보다 더 클 때 경고를 생성하도록 더 구성되는, 시스템.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
    상기 물체 인핸서는, 상기 피드 카메라와 상기 물체 인핸서 사이를 통과하는 상기 물체들에 대한 콘트라스트를 생성하기 위한 배경을 제공하는 고-밀도 폴리에틸렌(high-density polyethylene; HDPE) 시트인, 시스템.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서는, 후속 이미지 프레임들에서 위치를 변경할 가능성이 높은 임의의 물체들을 식별하기 위해 주어진 이미지 프레임에 대해 배경 제거를 수행하고, 각각의 식별된 물체에 대한 경계를 정의하기 위해 상기 식별된 물체들에 대해 윤곽 검출을 수행하되, 상기 경계는 잠재적인 ROI인, 상기 윤곽 검출을 수행하고, 상기 후보 ROI들을 획득하기 위해 필터링을 수행함으로써 상기 주어진 이미지에서 상기 후보 ROI들을 획득하도록 구성되는, 시스템.
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서는, 각각의 후보 ROI에 대해 샘플들을 생성하되, 주어진 샘플은 대응하는 후보 ROI에 대한 이미지 데이터를 포함하는, 샘플들을 생성하고, 상기 샘플들을 사전프로세싱하며, 상기 샘플이 상이한 클래스들에 속할 가능성들을 갖는 확률 분포를 생성하기 위해 각각의 사전프로세싱된 샘플에 대해 ROI 분류기를 적용함으로써 상기 후보 ROI들에 대해 분류를 수행하도록 구성되는, 시스템.
  8. 청구항 7에 있어서,
    상기 클래스들은 펠릿 클래스, 비-펠릿 클래스, 및 모호함(ambiguous) 클래스를 포함하는, 시스템.
  9. 청구항 8에 있어서,
    상기 펠릿성 스코어는 상기 샘플이 상기 펠릿 클래스에 속할 확률을 나타내는, 시스템.
  10. 청구항 7 내지 청구항 9 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서는, 동일한 매트릭스 크기를 갖도록 상기 샘플들을 크기 조정하고, 평균-중심화 정규화를 수행함으로써 상기 샘플들을 사전프로세싱하도록 구성되는, 시스템.
  11. 청구항 1 내지 청구항 10 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서는, (a) 활성 궤적들이 없을 때 상기 후보 ROI들을 별개의 새로운 궤적들에 할당하거나, (b) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 거리 임계치보다 더 작을 때 상기 후보 ROI들을 상기 가장 가까운 활성 궤적들에 할당하거나, 또는 (c) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 상기 거리 임계치보다 더 클 때 상기 후보 ROI들을 새로운 활성 궤적에 할당함으로써 하나 이상의 이미지 프레임 내의 상기 후보 ROI들의 각각을 상기 궤적들 중 하나에 할당하도록 구성되는, 시스템.
  12. 청구항 1 내지 청구항 11 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 주어진 시간 간격에서 상기 이미지들 중 하나에 대해 업데이트되지 않는 궤적들을 포함하는 완성된 궤적들을 식별하고, 상기 완성된 궤적들의 각각에 대해 적어도 하나의 궤적 측정치를 결정하며, 상기 적어도 하나의 궤적 측정치에 기초하여 어떤 완성된 궤적들이 펠릿 궤적 클래스에 속하는지를 결정함으로써 상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하도록 구성되는, 시스템.
  13. 청구항 12에 있어서,
    상기 적어도 하나의 프로세서는, 상기 적어도 하나의 궤적 측정치를 임계치와 비교하거나 또는 상기 적어도 하나의 궤적 측정치를 궤적 분류기에 제공함으로써 어떤 완성된 궤적들이 상기 펠릿 궤적 클래스에 속하는지를 결정하도록 구성되는, 시스템.
  14. 청구항 12 또는 청구항 13에 있어서,
    상기 적어도 하나의 궤적 측정치는, 상기 완성된 궤적의 길이, 상기 완성된 궤적을 포함하는 ROI들의 펠릿성 스코어들의 분포, 및/또는 하나 이상의 다른 필터 값들의 통계적 분포의 적어도 하나의 측정치를 포함하는, 시스템.
  15. 청구항 1 내지 청구항 14 중 어느 한 항에 있어서,
    상기 피드 카메라는, 상기 획득된 이미지들이 상기 물체 인핸서의 적어도 일 부분을 보여주도록 상기 물체 인핸서의 밑면에 연결되고 상기 물체 인핸서로부터 이격되는, 시스템.
  16. 청구항 1 내지 청구항 15 중 어느 한 항에 있어서,
    상기 시스템은 상기 배출 파이프에 부착되는 브래킷을 더 포함하며, 상기 물체 인핸서는 사용 동안 상기 물체 인핸서 및 상기 피드 카메라의 회전 능력을 제한하기 위해 2개의 이상의 위치들에서 상기 브래킷에 장착되는, 시스템.
  17. 청구항 1 내지 청구항 16 중 어느 한 항에 있어서,
    상기 물체 인핸서는, 증가된 양의 물 흐름이 상기 배출 파이프를 빠져 나가는 시간 동안 상기 물체 인핸서가 상기 출구 포트로부터 멀리 이동할 수 있도록 상기 배출 파이프의 상기 출구 포트에 인접하여 슬라이드가능하게 장착되는, 시스템.
  18. 청구항 1 내지 청구항 14 중 어느 한 항에 있어서,
    상기 피드 카메라는 상기 배출 파이프에 인접한 브래킷에 고정되며, 상기 물체 인핸서는 상기 브래킷 위의 포스트들 상에 슬라이드가능하게 장착되는, 시스템.
  19. 청구항 1 내지 청구항 14 중 어느 한 항에 있어서,
    상이한 양의 물 흐름이 상기 배출 파이프를 빠져 나갈 때 상기 물체 인핸서가 위로 그리고 아래로 이동할 수 있도록 상기 피드 카메라는 상기 배출 파이프에 고정되고 상기 물체 인핸서는 상기 배출 파이프에 인접하여 슬라이드가능하게 장착되는, 시스템.
  20. 청구항 1 내지 청구항 14 중 어느 한 항에 있어서,
    상이한 양의 물 흐름이 상기 배출 파이프를 빠져 나가고 상기 피드 카메라는 상기 물체 인핸서로부터 떨어진 고정된 위치에 남아 있을 때 상기 물체 인핸서가 위로 그리고 아래로 이동할 수 있도록, 상기 물체 인핸서는 상기 배출 파이프에 인접하여 슬라이드가능하게 장착되며 상기 피드 카메라는 상기 물체 인핸서로부터 떨어진 상기 고정된 위치에서 상기 물체 인핸서에 결합되는, 시스템.
  21. 육상-기반 양어장의 탱크에서 사료공급 모니터링을 위한 컴퓨터-구현 방법으로서,
    주어진 시간 간격 동안 피드 카메라로부터 획득된 비디오 피드로부터 이미지 프레임들 및 연관된 메타-데이터를 판독하는 단계로서, 상기 피드 카메라에 의해 획득된 상기 이미지 프레임들은 상기 탱크로부터 배출되는 먹지 않은 사료 펠릿들 및 비-펠릿 물체들의 이미지들인, 단계;
    각각 상기 이미지들 내의 고유 물체들에 대응하는 후보 관심 영역(region of interest; ROI)들을 획득하기 위해 상기 이미지 프레임들을 사전프로세싱하는 단계로서, 상기 물체들은 잠재적으로 사료 펠릿들인, 단계;
    상기 후보 ROI들에 대응하는 상기 물체들이 사료 펠릿 클래스에 속할 확률을 나타내는 펠릿성 스코어(pelletness score)를 획득하기 위해 상기 후보 ROI들에 대해 분류를 수행하는 단계;
    상기 후보 ROI가 상기 사료 펠릿 클래스에 속할 가능성에 기초하여 상기 후보 ROI들을 유지할지 여부를 결정하는 단계;
    상기 유지된 후보 ROI들의 각각을 궤적들에 할당하는 단계;
    상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하는 단계; 및
    상기 펠릿 궤적들에 기초하여 실시간으로 펠릿 카운트를 생성하는 단계로서, 상기 펠릿 카운트는 상기 탱크에서 물고기에 의해 소비되지 않은 상기 먹지 않은 사료 펠릿들의 미리 결정된 퍼센트를 나타내는, 단계를 포함하는, 방법.
  22. 청구항 21에 있어서,
    상기 방법은, 상기 펠릿 카운트를 상기 양어장으로 전송하는 단계로서, 상기 펠릿 카운트는 적어도 부분적으로 상기 펠릿 카운트에 기초하여 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 물고기 사료공급 기계에 의해 사용되는, 단계를 더 포함하는, 방법.
  23. 청구항 21에 있어서,
    상기 방법은, 상기 탱크에 제공할 물고기 사료의 새로운 양을 생성하기 위해 상기 펠릿 카운트에 기초하여 제어 신호를 생성하고 상기 제어 신호를 상기 양어장의 물고기 사료공급기 기계로 전송하는 단계를 더 포함하는, 방법.
  24. 청구항 21 내지 청구항 23 중 어느 한 항에 있어서,
    상기 방법은, 상기 시간 간격에서 상기 먹지 않은 사료 펠릿들의 그래디언트들을 결정하는 단계, 및 상기 그래디언트들이 그래디언트 임계치보다 더 클 때 경고를 생성하는 단계를 더 포함하는, 방법.
  25. 청구항 21 내지 청구항 23 중 어느 한 항에 있어서,
    상기 주어진 이미지에서 상기 후보 ROI들을 획득하는 단계는, 후속 이미지 프레임들에서 위치를 변경할 가능성이 높은 임의의 물체들을 식별하기 위해 주어진 이미지 프레임에 대해 배경 제거를 수행하는 단계, 각각의 식별된 물체에 대한 경계를 정의하기 위해 상기 식별된 물체들에 대해 윤곽 검출을 수행하는 단계로서, 상기 경계는 잠재적인 ROI인, 단계, 및 상기 후보 ROI들을 획득하기 위해 필터링을 수행하는 단계를 포함하는, 방법.
  26. 청구항 21 내지 청구항 24 중 어느 한 항에 있어서,
    상기 후보 ROI들에 대해 분류를 수행하는 단계는, 각각의 후보 ROI에 대해 샘플들을 생성하는 단계로서, 주어진 샘플은 대응하는 후보 ROI에 대한 이미지 데이터를 포함하는, 단계, 상기 샘플들을 사전프로세싱하는 단계, 및 상기 샘플이 상이한 클래스들에 속할 가능성들을 갖는 확률 분포를 생성하기 위해 각각의 사전프로세싱된 샘플에 대해 ROI 분류기를 적용하는 단계를 포함하는, 방법.
  27. 청구항 26에 있어서,
    상기 클래스들은 펠릿 클래스, 비-펠릿 클래스, 및 모호함 클래스를 포함하는, 방법.
  28. 청구항 27에 있어서,
    상기 펠릿성 스코어는 상기 샘플이 상기 펠릿 클래스에 속할 확률을 나타내는, 방법.
  29. 청구항 21 내지 청구항 27 중 어느 한 항에 있어서,
    상기 방법은, 동일한 매트릭스 크기를 갖도록 상기 샘플들을 크기 조정하고, 평균-중심화 정규화를 수행함으로써 상기 샘플들을 사전프로세싱하는 단계를 포함하는, 방법.
  30. 청구항 21 내지 청구항 28 중 어느 한 항에 있어서,
    하나 이상의 이미지 프레임 내의 상기 후보 ROI들의 각각을 상기 궤적들 중 하나에 할당하는 단계는, (a) 활성 궤적들이 없을 때 상기 후보 ROI들을 별개의 새로운 궤적들에 할당하는 단계; (b) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 거리 임계치보다 더 작을 때 상기 후보 ROI들을 상기 가장 가까운 활성 궤적들에 할당하는 단계; 또는 (c) 활성 궤적들이 있을 때, 가장 가까운 활성 궤적들 내의 마지막 ROI와 상기 후보 ROI들의 위치들 사이의 거리들이 상기 거리 임계치보다 더 클 때 상기 후보 ROI들을 새로운 활성 궤적에 할당하는 단계를 포함하는, 방법.
  31. 청구항 21 내지 청구항 29 중 어느 한 항에 있어서,
    상기 궤적들을 펠릿 궤적들 또는 비-펠릿 궤적들로 분류하는 단계는, 상기 주어진 시간 간격에서 상기 이미지들 중 하나에 대해 업데이트되지 않는 궤적들을 포함하는 완성된 궤적들을 식별하는 단계, 상기 완성된 궤적들의 각각에 대해 적어도 하나의 궤적 측정치를 결정하는 단계, 및 상기 적어도 하나의 궤적 측정치에 기초하여 어떤 완성된 궤적들이 펠릿 궤적 클래스에 속하는지를 결정하는 단계를 포함하는, 방법.
  32. 청구항 30에 있어서,
    어떤 완성된 궤적들이 상기 펠릿 궤적 클래스에 속하는지를 결정하는 단계는, 상기 적어도 하나의 궤적 측정치를 임계치와 비교하는 단계 또는 상기 적어도 하나의 궤적 측정치를 궤적 분류기에 제공하는 단계를 포함하는, 방법.
  33. 청구항 30 또는 청구항 31에 있어서,
    상기 적어도 하나의 궤적 측정치는, 상기 완성된 궤적의 길이, 상기 완성된 궤적을 포함하는 ROI들의 펠릿성 스코어들의 분포, 및/또는 하나 이상의 필터 값들의 통계적 분포의 적어도 하나의 측정치를 포함하는, 방법.
  34. 청구항 21 내지 청구항 32 중 어느 한 항에 있어서,
    상기 방법은, 상기 획득된 이미지들 내의 물체들이 정의가능 주변부를 갖도록 상기 피드 카메라에 대해 배경을 제공하기 위해 상기 피드 카메라 반대편에 그리고 상기 피드 카메라의 시야 내에 상기 배출 파이프의 출구에 인접하여 물체 인핸서를 장착하는 단계; 및 상기 피드 카메라에 의해 획득된 상기 비디오 피드가 상기 물체 인핸서의 이미지들인 이미지 프레임들을 포함하고, 상기 이미지들이 획득될 때 상기 피드 카메라의 시야를 가로지르는 물체들을 포함하도록 상기 피드 카메라를 상기 물체 인핸서에 고정하는 단계를 포함하는, 방법.
  35. 청구항 34에 있어서,
    상기 방법은, 상기 피드 카메라와 상기 물체 인핸서 사이를 통과하는 상기 물체들에 대한 증가된 콘트라스트를 생성하기 위한 배경을 제공하기 위해 상기 물체 인핸서에 대해 고-밀도 폴리에틸렌(high-density polyethylene; HDPE) 시트를 사용하는 단계를 포함하는, 방법.
  36. 물고기를 포함하는 탱크를 갖는 육상-기반 양어장에서 사료공급 모니터링을 위한 시스템으로서,
    상기 탱크에 결합된 배출 파이프에 장착되는 피드 카메라로서, 상기 피드 카메라는 각각의 이미지가 획득될 때 상기 피드 카메라의 시야를 가로지르는 물체들의 이미지들을 포함하는 비디오 피드를 캡처하도록 구성되고, 상기 물체들은 펠릿들 및 비-펠릿 물체들을 포함하는, 상기 피드 카메라; 및
    적어도 하나의 프로세서, 및 실행될 때 상기 적어도 하나의 프로세서가 청구항 21 내지 청구항 35 중 어느 한 항에 정의된 방법을 수행하게 하는 저장된 명령어들을 갖는 비-일시적인 컴퓨터-판독가능 저장 매체를 포함하는 컴퓨팅 디바이스를 포함하는, 시스템.
KR1020237031670A 2021-03-07 2022-03-07 육상 기반 양어장들에 대한 ai 기반 사료공급 시스템 및 방법 KR20230155470A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163157759P 2021-03-07 2021-03-07
US63/157,759 2021-03-07
PCT/CA2022/050323 WO2022187940A1 (en) 2021-03-07 2022-03-07 Ai based feeding system and method for land based fish farms

Publications (1)

Publication Number Publication Date
KR20230155470A true KR20230155470A (ko) 2023-11-10

Family

ID=83115790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031670A KR20230155470A (ko) 2021-03-07 2022-03-07 육상 기반 양어장들에 대한 ai 기반 사료공급 시스템 및 방법

Country Status (7)

Country Link
US (1) US11864537B2 (ko)
EP (1) EP4304348A1 (ko)
JP (1) JP2024512320A (ko)
KR (1) KR20230155470A (ko)
CA (1) CA3174265A1 (ko)
CL (1) CL2023002589A1 (ko)
WO (1) WO2022187940A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11602132B2 (en) 2020-10-06 2023-03-14 Sixgill, LLC System and method of counting livestock
US20230172169A1 (en) * 2021-12-02 2023-06-08 X Development Llc Underwater feed movement detection
WO2024163633A1 (en) * 2023-01-31 2024-08-08 Green Plains Inc. Screening assay and system for feed ingredients
CN116548345B (zh) * 2023-04-25 2024-01-09 广东环境保护工程职业学院 鱼虾投喂方法、装置、系统和存储介质
JP7538938B1 (ja) 2023-12-14 2024-08-22 日鉄エンジニアリング株式会社 給餌システムおよび学習モデル生成方法

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPN681595A0 (en) 1995-11-24 1995-12-21 Blyth, Peter John Sensor for detection and/or discrimination of objects
JP3101938B2 (ja) 1996-03-27 2000-10-23 株式会社日立製作所 水棲生物用自動給餌装置及び方法
CN1228008A (zh) 1996-06-24 1999-09-08 德克萨斯州立大学董事会 自动化的闭路循环水产养殖过滤系统
WO1998056261A1 (en) 1997-06-09 1998-12-17 The University Of British Columbia Improved fish feed and method of using same
FR2781644B1 (fr) 1998-07-30 2000-10-13 Centre Nat Rech Scient Procede de nourrissage d'animaux aquatiques
SE9804384A0 (sv) 1998-12-17 2000-06-18 Poro I Norrlångträsk Ab Förfarande och anordning för att effektivisera produktion av odlade djurarter, i synnerhet fisk vid fiskodlingar
WO2003046398A1 (en) 2001-10-09 2003-06-05 Johannes Jacobus Naude Synchronised clutch
SE521571C2 (sv) 2002-02-07 2003-11-11 Greenfish Ab Integrerat slutet recirkulerande system för rening av spillvatten i vattenbruk.
DE602004020558D1 (de) 2003-08-26 2009-05-28 Com E Ind Equa Ltda Puerto Mon Verfahren zur Überwachung und Steuerung des unverzehrtes Futters in Fischzuchtanlagen
US20060036419A1 (en) 2004-07-29 2006-02-16 Can Technologies, Inc. System and method for animal production optimization
WO2006089361A1 (en) 2005-02-23 2006-08-31 Embedded Technologies Corporation Pty Ltd Process control system and method for operating a process control system
NO330863B1 (no) 2007-07-09 2011-08-01 Feed Control Norway As Anordning og fremgangsmate for snittvektsmaling og appetittforing i oppdrettsanlegg
US8159525B2 (en) 2008-06-13 2012-04-17 The United States Of America, As Represented By The Secretary Of Agriculture Portable multispectral imaging systems
AU2010235527B2 (en) 2009-04-07 2014-11-13 Nippon Suisan Kaisha, Ltd. Feeding method and feeding system for farmed fish
US8506799B2 (en) 2009-09-09 2013-08-13 ClearCorp Suspended particle characterization system for a water processing facility
NO331769B1 (no) 2010-05-18 2012-03-26 Uni I Stavanger System og fremgangsmate for styrt fôring av oppdrettsfisk
US8608404B2 (en) 2010-07-29 2013-12-17 Douglas Steven Safreno Smart sustainable agricultural/aquacultural system and methods
ES2704429T3 (es) 2012-03-27 2019-03-18 Satake Eng Co Ltd Máquina clasificadora de gránulos de tipo óptico
US20150196002A1 (en) 2014-01-12 2015-07-16 Kevin Friesth Automated hybrid aquaponics and bioreactor system including product processing and storage facilities with integrated robotics, control system, and renewable energy system cross-reference to related applications
NO337305B1 (no) 2012-12-20 2016-03-07 Ebtech As System og fremgangsmåte for beregning av fysiske størrelser for fritt bevegelige objekter i vann
EP3010335B1 (en) 2013-06-17 2023-08-09 Signify Holding B.V. Illumination system
US10068195B2 (en) 2014-10-10 2018-09-04 John R New Methods and systems for managing product distribution and data hub for connecting and integrating related systems
CN107249317B (zh) 2015-02-19 2021-12-31 永远海洋公司 基于云的自动水产养殖系统
US11311000B2 (en) 2015-07-06 2022-04-26 Wisconsin Alumni Research Foundation Device and method for enhancing the feeding response of larval fish
US10568305B2 (en) 2015-09-28 2020-02-25 Georgetown University Systems and methods for automated control of animal training and discrimination learning
TWM515276U (zh) 2015-10-08 2016-01-11 Taiwan Anjie Electronics Co Ltd 智慧型雲端互動水族裝置
US10163199B2 (en) 2015-11-29 2018-12-25 F&T Water Solutions, L.L.C. Recirculating aquaculture system and treatment method for aquatic species
US10191489B1 (en) 2016-11-08 2019-01-29 X Development Llc Control systems for autonomous submersible structures
PH12016000469A1 (en) 2016-12-15 2018-06-25 Univ Of The Philippines Diliman Estimating fish size, population density, species distribution and biomass
GB201710372D0 (en) 2017-06-28 2017-08-09 Observe Tech Ltd System and method of feeding aquatic animals
US20190021292A1 (en) * 2017-07-21 2019-01-24 RoboGardens LLC System and method for adaptive aquatic feeding based on image processing
US11051488B2 (en) 2018-03-06 2021-07-06 Benjamin A. Black Deer feeder power control and distribution system
CN111868472A (zh) 2018-03-20 2020-10-30 吉利海洋科技有限公司 提取多个移动物体的统计样本的系统及方法
US10534967B2 (en) 2018-05-03 2020-01-14 X Development Llc Fish measurement station keeping
WO2019245722A1 (en) 2018-06-19 2019-12-26 Aquabyte, Inc. Sea lice detection and classification in an aquaculture environment
US11766030B2 (en) 2018-08-06 2023-09-26 Northeastern University Robotic aquaculture system and methods
WO2020046524A1 (en) 2018-08-27 2020-03-05 Aquabyte, Inc. Automatic feed pellet monitoring based on camera footage in an aquaculture environment
EP3843542B1 (en) 2018-08-27 2024-05-15 Aquabyte, Inc. Optimal feeding based on signals in an aquaculture environment
NO344459B1 (en) 2018-11-06 2019-12-23 Micromar As Measurement instrument
JP6739049B2 (ja) 2018-11-14 2020-08-12 株式会社 アイエスイー 養殖魚の自動給餌方法並びに自動給餌システム
US20200196568A1 (en) 2018-12-21 2020-06-25 Neuromation, Inc. System and method for controlling animal feed
CN110074030B (zh) 2019-04-11 2020-11-20 浙江大学 一种融合机器视觉与红外检测技术的反馈式池塘循环水智能投饲系统
ES2791551A1 (es) 2019-05-03 2020-11-04 Inst Espanol De Oceanografia Ieo Procedimiento para la identificacion y caracterizacion de peces y sistema de suministro automatico de alimento que hace uso del mismo
CN113795145B (zh) 2019-06-12 2023-10-20 渔觅创新私人有限公司 水栖动物养殖支援系统、升降装置、投饵装置、水栖动物的养殖方法及水栖动物养殖支援介质
TWI736950B (zh) 2019-08-12 2021-08-21 國立中山大學 智慧養殖系統與方法
US10856520B1 (en) 2020-01-10 2020-12-08 Ecto, Inc. Methods for generating consensus feeding appetite forecasts
CN111165414B (zh) * 2020-01-15 2020-11-17 浙江大学 一种基于光-声耦合技术的游泳型鱼类自适应投喂装置及方法
US11662291B1 (en) 2021-02-03 2023-05-30 Atlantic Sapphire Ip, Llc System and method for feed validation measurement
US20220272952A1 (en) 2021-02-26 2022-09-01 Thue Holm Feed consumption monitoring system
NO346398B1 (en) 2021-03-11 2022-07-11 Micromar As Feed detection assembly, system and method for detecting feed pellets in an effluent pipe of a fish tank
US11297247B1 (en) * 2021-05-03 2022-04-05 X Development Llc Automated camera positioning for feeding behavior monitoring
US11864536B2 (en) * 2021-05-14 2024-01-09 X Development Llc State-specific aquaculture feeder controller
US12078533B2 (en) * 2021-06-02 2024-09-03 Tidalx Ai Inc. Underwater camera as light sensor
US12051222B2 (en) * 2021-07-13 2024-07-30 X Development Llc Camera calibration for feeding behavior monitoring

Also Published As

Publication number Publication date
CL2023002589A1 (es) 2024-01-05
EP4304348A1 (en) 2024-01-17
CA3174265A1 (en) 2022-09-15
US20220279765A1 (en) 2022-09-08
JP2024512320A (ja) 2024-03-19
US11864537B2 (en) 2024-01-09
WO2022187940A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
US11864537B2 (en) AI based feeding system and method for land-based fish farms
Fang et al. Comparative study on poultry target tracking algorithms based on a deep regression network
KR102251242B1 (ko) 컴퓨터 보조 진단 장치 및 방법
CN110188807B (zh) 基于级联超分辨率网络与改进Faster R-CNN的隧道行人目标检测方法
JP4970531B2 (ja) 1つ以上のオブジェクトの行動を自動的に特徴付けるための方法。
Zion et al. Real-time underwater sorting of edible fish species
AU2010219406B2 (en) Image analysis for making animal measurements
Li et al. Detection of uneaten fish food pellets in underwater images for aquaculture
Liu et al. OptiFlex: multi-frame animal pose estimation combining deep learning with optical flow
Liu et al. A high-density fish school segmentation framework for biomass statistics in a deep-sea cage
CN111797831A (zh) 基于bim和人工智能的家禽进食并行异常检测方法
Isa et al. CNN transfer learning of shrimp detection for underwater vision system
CN115471871A (zh) 一种基于目标检测和分类网络的麻鸭性别分类识别方法
Han et al. Evaluation of computer vision for detecting agonistic behavior of pigs in a single-space feeding stall through blocked cross-validation strategies
Yang et al. A defencing algorithm based on deep learning improves the detection accuracy of caged chickens
Ahmed et al. An advanced Bangladeshi local fish classification system based on the combination of deep learning and the internet of things (IoT)
Bello et al. Behavior recognition of group-ranched cattle from video sequences using deep learning
KR101690050B1 (ko) 지능형 영상보안 시스템 및 객체 추적 방법
Novas et al. Live monitoring in poultry houses: A broiler detection approach
Wu et al. Super-resolution fusion optimization for poultry detection: a multi-object chicken detection method
Nasiri et al. An automated video action recognition-based system for drinking time estimation of individual broilers
Kibet et al. Counting Abalone with High Precision Using YOLOv3 and DeepSORT
Nasiri et al. Automated detection and counting of broiler behaviors using a video recognition system
Badhe et al. Study of Deep Learning Algorithms to Identify and Detect Endangered Species of Animals
Alon et al. Machine vision-based automatic lamb identification and drinking activity in a commercial farm