豬隻監測系統操作手冊
這份手冊分三節。日常操作是每天要用的;設定說明是改系統行為時才需要看的, 裡面有幾項改錯了會刪掉錄影,各自都標了出來;遇到問題是一張對照表。
畫面上任何一個按鈕不確定是做什麼的,右上角有個三個點的「⋯ 更多」, 按下去選「🧭 導覽模式」,再點那個按鈕就會告訴你它的用途,而且不會真的執行。 要離開,再從「⋯ 更多」按一次「導覽模式」。 手機上沒有滑鼠可以懸停,這個模式就是為了那種場合做的。
日常操作
這套系統在做什麼
系統盯著每一隻豬的活動量。一隻豬如果動得比同欄其他豬少很多,就把牠標出來, 提醒你去看看、必要時採血檢驗。活動量是靠攝影機追蹤每隻豬的移動距離算出來的, 單位是「每秒移動幾個像素」。
同時它也量每隻豬的體表溫度,由熱像鏡頭取得。
系統不會告訴你豬生了什麼病。它只回答一個問題:這幾隻豬今天不太對勁, 要不要去看一下。
畫面各處是什麼
| 位置 | 東西 |
|---|---|
| 左上 | 選攝影機、RGB/Thermal 切換 |
| 左上再過去 | 多畫面監看(一次看所有攝影機) |
| 右上 | 通知中心(鈴鐺)、設定(齒輪)、更多(三個點)、硬碟狀態(小圓點) |
| 「更多」裡面 | 🧭 導覽模式、📖 操作手冊、🚪 登出(沒開登入功能時不會出現) |
| 中間 | 影片,上面畫著豬隻方框 |
| 影片下方 | 播放控制與時間軸 |
| 右欄 | 豬隻狀態/通知中心/書籤三個分頁 |
右上角那個小圓點是硬碟狀態。它變色代表空間不足或寫入異常:這時候直播還在, 但影像沒有存下來。看到它變色要處理,否則那段時間之後找不回來。
看直播
打開頁面就是直播。左上角換攝影機,旁邊 RGB/Thermal 切換一般畫面與熱像。
影片下方那排右邊有個「放大影片」,按下去把右欄與時間軸收起來,讓影片吃滿畫面。 再按一次或按 Esc 回來。它只影響顯示,不會停掉錄影或分析。
畫面上的方框
方框是系統認出來的豬。顏色有意義,看到飽和的顏色就是這隻豬有事:
| 顏色 | 意思 |
|---|---|
| 灰白 | 一般的豬,沒事 |
| 紅 | 被判定為異常(活動量或體溫) |
| 橘 | 關注清單裡的「最低」 |
| 綠 | 關注清單裡的「對照」 |
框左下角可能出現 ⚠(活動量偏低)或 🌡(體溫異常)。
框上的號碼是追蹤編號,不是耳號。它只在系統沒有跟丟的期間有效:豬被擋住 太久再出現,會換一個新號碼。這是這套系統目前最主要的限制,下面「遇到問題」 那一節有講它的後果。
右欄有兩個控制影響畫面上畫幾個框:
- 畫面上的框(下拉選單)
- 「只畫重點」(預設):直播只留關注清單的紅橘綠框,回放只留異常的紅框。 其餘的豬不畫,畫面清爽。左下角會顯示「已隱藏 N 個正常框」。這行字很重要: 它是「偵測還活著、只是沒事」的唯一證據。如果那行變成「未偵測到豬隻」, 那就是真的什麼都沒偵測到。
- 「其餘畫成淡框」:一般的豬留一圈很淡的線,知道牠在哪但不干擾。
- 「全部照畫」:每一隻都畫。
- 每個框都標編號:打勾之後每個框上面都標出編號,一眼就能對上畫面上的框 是右邊清單裡的哪一隻。不打勾時只有被標記的豬、以及你點選的那一隻會顯示編號。
不管選哪個模式,你從清單點選的那一隻永遠會畫出來,而且一定帶編號。
熱像與體溫
按 Thermal 切到熱像。熱像跟一般畫面看的是同一批豬、同一個時刻,只是換一顆 鏡頭;豬隻方框一樣會畫在上面。
熱像的顏色代表溫度,而且用的是固定的溫度範圍(25~40°C)。這代表同一個顏色 在任何時候、任何一台相機上都是同一個溫度,可以直接互相比較。不是「這一幀裡最熱的 地方最亮」那種相對顯示。
每隻豬的體溫,就是牠的方框在熱像上對應那一塊的平均溫度。所以:
- 框對得準不準,直接決定體溫準不準。框偏掉的話量到的是旁邊的地板。 怎麼校正見下一節。
- 晚上豬舍沒開燈時沒有體溫。一般畫面全黑 → 認不出豬 → 沒有方框 → 沒有地方 可以取溫度。熱像本身不受影響(黑暗中照常成像),你還是看得到熱像畫面, 只是上面沒有框、也不會有體溫數字。這是已知限制,不是故障。
校正熱像對位
熱像與一般畫面是兩顆分開的鏡頭:視角不一樣,位置也差幾公分。所以同一隻豬 在兩張圖上不會落在完全相同的位置,方框畫到熱像上可能整體偏一點。
校正就是把框推回豬身上。存檔之後體溫的取樣位置也跟著改,所以這不只是把畫面 調好看,它會改變記錄下來的體溫數字。
怎麼做:
- 切到 Thermal,左上會出現「校正對位」,按下去。按鈕會變成「校正中…」並亮起來, 代表你已經在校正模式裡;再按一次就是取消離開(回到進來時的數字,不會存檔)。
- 畫面會停住。底圖是靜止的一張圖,熱像也停下來,兩邊才比得起來; 結束校正會自動接回去。
- 校正模式下所有框都會畫出來(不受顯示模式影響),否則沒有東西可以對。
- 直接在畫面上拖曳,把框整體推到豬身上。
- 用面板上的「左右/上下/寬/高」微調鈕做細部調整。
- 「儲存並套用」。「歸零」是回到完全不校正的狀態,「取消」是放棄這次修改。
對到什麼算對好:畫面上會浮出半透明的一般畫面當底圖,遮罩則畫成兩條線 (虛線=一般畫面上的位置,實線=套過對位後的位置)。把它們對到同一個不會移動 的東西(飼料槽、柱子、牆角)就對好了。豬會走動,不能拿來當基準。
關燈也校得了。 系統會自己留一張「最近一張夠亮的一般畫面」,晚上取不到即時 畫面時就拿它來當底圖,面板上會寫出那張圖是幾點拍的。鏡頭是固定不動的,拿舊的 底圖校正是對的:你對的是兩顆鏡頭之間的幾何關係,不是那一幀拍到什麼。
而且熱像與方框會一起帶到同一個時刻,所以畫面上兩張圖裡是同幾隻豬、在同樣的 位置。這代表晚上校正時你一樣可以拿豬當參照物,不必在 160x120 的熱像裡找牆角。
如果面板寫「沒有底圖可用」,代表這台相機從來沒有在白天亮著跑過。這時改用遮罩的 雙線對位,或等白天再校一次(白天校過就會存起來,之後夜間也用得到)。
一台相機校一次就好,鏡頭不動的話不會跑掉。
關注清單:現在該去看哪幾隻豬
右邊「豬隻狀態」分頁的最上方是關注清單。它只列現在畫面上看得到的豬: 你拿到編號的下一個動作是走進豬舍找那隻豬,所以一個在畫面上指不到任何框的編號 對你沒有用處。點清單裡的任何一隻,畫面上一定有牠的框。
它最多有三種豬,各有各的顏色,畫面上的框也是同一組顏色:
| 顏色 | 標籤 | 意思 | 要做什麼 |
|---|---|---|---|
| 紅 | 異常 | 系統判定牠的活動量明顯低於同欄,或體溫不對 | 去看牠。這是採血的主要依據 |
| 橘 | 最低 | 今天沒有任何異常,但這幾隻是活動量最低的 | 順手看一眼就好,不代表有問題 |
| 綠 | 對照 | 活動量最高的幾隻 | 不用管牠。放這裡是讓你知道「正常的豬長什麼樣」 |
有異常的時候,橘色的「最低」會整個消失,清單只列紅色的。這是刻意的: 有異常時這兩種幾乎都是同一批豬,同時列出來會讓人分不清哪些是系統真的在警告。
點清單裡的任何一隻,畫面上那個框會加粗、其餘淡化,方便在一群豬裡找到牠。
清單最多顯示五列,超過會出現捲軸。清單裡的豬會隨著時間換編號:一隻豬被擋住 夠久再出現時系統會給牠新的號碼。看到編號跳號是正常的。
清單下面可能有一個收合起來的「最近消失」。那是十分鐘內還在畫面上、現在不見了的 異常豬。牠們仍然算沒有解除的警報,只是現在指不到框,所以讓開位置給看得到的那幾隻。 牠可能只是走到角落或被別的豬擋住,也可能只是換了編號。真正的採血紀錄在通知中心, 不會因為編號消失而不見。
清單有時候會顯示一行字而不是豬:
- 「豬群活動量普遍偏低,暫不評估」:整欄的豬都在休息(常見於夜間)。 這種時候沒有比較基準,系統刻意不給名字,不是壞掉。
- 「首次分析尚未完成,稍候再看」:系統剛重新啟動,還沒算完第一輪。等一下再看。
- 「回放中不評估關注清單」:你正在看回放。關注清單講的是「現在」,回放沒有這個概念。
豬隻狀態表格
清單下面是完整的豬隻列表,可以點欄位標題排序。活動量或體溫是「—」代表這一輪 沒有算出來,通常是那隻豬被追蹤到的時間太短。「只顯示選取的豬」可以先點一隻豬, 再勾起來,畫面上就只剩牠。
通知
點通知裡的任何一則,畫面會直接跳到那則告警發生的那一秒,而且:
- 自動換到那台攝影機。
- 下面的日期與時間軸一起跳到那一天、那一小時。
- 自動選取那隻豬,牠的方框會加粗,其他的淡化。
所以看到通知的下一個動作就是點下去,不用自己找時間、找相機、找編號。
右上角的鈴鐺是通知中心,上面的數字是未讀數。
每一條通知會標明是哪一種,後面跟著的數字兩種意思不一樣:
| 種類 | 後面那個數字 | 判準 |
|---|---|---|
| 活動量偏低 | 「2.1 px/s,只有同欄中位數的 25%」 | 跟同一欄其他豬的活動量中位數比 |
| 體溫異常 | 「偏差 3.4σ」 | 跟這隻豬自己近期的平均體溫比 |
這兩件事用的是完全不同的判斷方式,所以設定裡的「體溫異常閾值」只影響體溫那一種, 不會讓活動量變得比較敏感或比較遲鈍。
同一隻豬連續被標記時,通知會合併成一條,後面帶一個像 ×3 的記號,
表示這段期間內連續發生了三次。滑鼠移上去(或在導覽模式下點它)會告訴你最早是什麼時候。
間隔超過六小時的告警不會合併,因為「今天又低了」本身就是要知道的事。
點通知會跳到那個時間點的回放,直接看當時發生什麼。清單底部的「載入更多」可以往回翻。
看回放
時間軸在畫面下方。先用月曆選日期,下面是那一天的 24 個小時格,有錄到影像的 才點得下去。點一格就開始播那個小時。
回放中按 RGB/Thermal 切換,會留在同一個時刻,不會跳回直播、也不會跳回 整點。你選取的那隻豬也會留著。
小時格可以多選,然後做兩件事:保留(上鎖,之後自動清理不會刪掉它)、 刪除(永久刪除,救不回來)。
書籤
看到值得記下來的畫面時,按播放控制列上的 ★(「在這裡加書籤」)。
它記的是目前播放的這一刻,精確到分,不是「這一小時」。直播中按就是記下現在, 回放中按就是記下畫面停著的那一刻。所以不必再把時間寫進備註裡(以前只記得到 小時,大家都得自己在備註寫「大概中間的時候」「15:40」)。
- 加書籤會自動把那個小時標成保留,不會被保留天數到期後刪掉。
- 移除書籤不會取消保留,也不會刪影片。那個小時仍然留著。
- 同一個小時可以有好幾個書籤。時間軸上那一格會顯示 ★2、★3,滑過去看得到 每一個的時刻與名稱。
書籤都列在右欄的「書籤」分頁,按名字就跳過去,底下的日期與時間軸也會一起 帶到那一天。書籤可以改名字、加註記。
多畫面監看
左上角的格狀圖示切到多畫面,一次看所有攝影機。這個模式是純監看: 沒有豬隻方框、沒有聲音、也不能多選時段或刪除影像。有異常告警的那一格會加紅框。
RGB/Thermal 的選擇一樣有效,所有格子會一起換。
下面那條時間軸管的是所有畫面:點一個時段,上面每一格一起跳到那個時段回放。 它不能多選。要對單一台做保留/書籤/刪除,先切回單畫面。
點任何一格會切回單畫面並選中那台攝影機,接著就能做上面所有事。
設定說明
設定在右上角的齒輪。點標題展開那一組,預設只開著「異常分析」。 收起來的組不影響它的設定值,只是先不佔畫面。以下逐項說明改了會發生什麼。
工程模式(為什麼設定改不動)
打開設定看到最上面寫著 🔒 下面的設定唯讀,那是正常的,不是壞掉。
這裡面的項目改錯了會改變偵測結果或刪掉影像,而且畫面上完全看不出來—— 體溫的取樣位置偏掉、真的豬被遮罩丟掉、活動量的基準整個位移,都要等到隔天 看數字才會發現。所以它們只開放給裝機人員與維護者。
要改的話,在最上面那格輸入工程 PIN(跟安裝這套系統的人拿),按「解鎖」。 解開之後這台裝置記住 12 小時,期間可以改設定、編輯遮罩、校正熱像對位、 設偵測框大小、批量刪除錄影。做完按「離開工程模式」,避免下一個人誤觸。
日常工作完全不需要解鎖:看關注清單、找豬、看回放、加書籤、看通知、 保留某個時段,這些都照常。
如果最上面寫的是「⚠ 這台機器沒有設定工程 PIN」,代表還沒設密碼,所有人都改得動。 要限制的話請安裝人員在伺服器上設定。
異常分析
- 分析間隔:多久重算一次活動量。調短會即時一點,但每次都要重新查資料庫。
- 分析視窗:每次計算往回看多久的資料。視窗太短時,被擋住一下子的豬就算不出活動量。
- 體溫異常偵測:關掉之後系統只看活動量,畫面上的體溫旗標也會全部清掉。
- 體溫異常閾值(σ):體溫要偏離這隻豬自己近期的平均多少才算異常,數字越大越不敏感。 ⚠ 這一項只作用在體溫。活動量用的是另一套判準(跟同欄中位數比),不吃這個數字, 改它不會讓活動量的判定變鬆或變緊。
關注清單
- 沒有異常時列出最低活動量的豬:關掉的話,沒有異常時清單就是空的。
- 列出幾隻(最低):預設 3。列太多會失去「該去看哪幾隻」的意義。
- 對照組幾隻:預設 3,填 0 就是不顯示對照組。
遮罩
遮罩用來擋掉走道、牆面這種不該被當成豬的區域。
遮罩不會改變畫面:錄影、直播、回放看到的都還是完整影像。它只是讓落在遮罩裡面的 偵測被忽略,不進追蹤。
怎麼畫:設定 →「編輯這台相機的遮罩」→ 設定面板會收起來 → 在畫面上點出邊界 (至少三個點)→ 按「完成這一塊」→ 可以給它取個名字 → 按「儲存並套用」。 存檔後下一幀就生效,不用重新啟動。
⚠ 不要用遮罩去遮豬會走進走出的地方。 遮走道、牆面、鏡頭邊角照到的隔壁欄都沒問題; 但如果遮的區域豬會頻繁進出,牠每次進去就等於在系統眼裡消失一段時間, 出來時會被算成「瞬間移動了一大段」,活動量就不準了。
每一塊遮罩可以單獨停用。懷疑某一塊遮錯了,先把那一塊關掉再看, 比整組刪掉重畫快得多。真的出事(例如發現有真的豬被遮掉了)就把「啟用遮罩」整個關掉, 系統立刻回到完全不過濾的狀態。
- 在畫面上顯示遮罩範圍:平常關著就好。開啟後畫面上會蓋一層紅色半透明區塊, 只在確認遮罩位置對不對的時候需要。
遮罩跟熱像對位校正是兩件不同的事:遮罩決定「哪些偵測不算數」,對位校正決定 「框在熱像上畫在哪、體溫從哪裡取」。
偵測框大小
系統偶爾會框出「一隻豬不可能長這樣」的東西:兩三隻擠在一起被當成一隻、 牆面反光或飼料槽被判成一大塊、遠處欄杆的縫隙變成一個小點。
這一組讓你設一個大小範圍,超出範圍的框直接丟掉,不進追蹤也不寫進資料庫。
- 上限(比這個大就丟掉,%):預設 100 = 不限制。
- 下限(比這個小就丟掉,%):預設 0 = 不限制。
- 儲存大小上限(這台相機):一台相機一組,存完立刻生效。
單位是佔整個畫面的百分比。不確定要填多少,就按「在畫面上拖一個框當上限」, 在畫面上拖出「比這個大就一定不是一隻豬」的範圍,數字會自己填進去。
⚠ 為什麼要在追蹤之前就丟掉,而不是只是不畫出來:一個橫跨半個畫面的框跟畫面上 任何一隻豬都重疊得到,追蹤器會把某隻真豬的軌跡接到它身上,那隻豬的活動量從此 就算錯了——而畫面看起來一切正常。等到隔天看活動量才會發現,那時候資料已經沒了。
⚠ 設太嚴會安靜地把真的豬丟掉。有框被丟掉時,影片左下角那行字會寫 「另有 N 個框因大小被丟掉」,看到這句話就回來檢查這裡的數字。
錄影排程
- 啟用夜間停錄:在指定時段內不把影像存到硬碟,但直播照常可以看。
- 停錄開始/結束時間:預設 17:00 到隔天 06:30。
儲存空間
- ⚠ 錄影保留天數:超過這個天數的錄影會被自動刪除,刪掉就沒了。 調小之前先確認你不再需要那段時間的影像。被「保留」上鎖的時段不會被刪。
- 最低可用空間:剩餘空間低於這個數字時,系統停止把影像存到硬碟並發出警告, 直播仍然正常。這是為了避免把硬碟塞爆導致整台機器出問題。
- 檢查間隔:多久檢查一次硬碟狀態。
推播通知
- 啟用推播:關掉就完全不推播。
- ntfy URL:推播要送到哪裡。 ⚠ 這串網址等同密碼,知道的人可以看到你全部的告警,也可以往你手機亂發通知。
- 串流復活通知優先級:攝影機斷線自動重連時要不要推播。設成「最低」等於這類事件不推播; 攝影機不穩定時這個選項可以讓通知不要一直響。
夜間停 GPU
在指定時段內停止影像辨識以節省電力。停止期間完全沒有偵測:沒有方框、 沒有豬隻清單、也不會累積活動量資料。直播與錄影不受影響。預設是關閉的。
遇到問題
| 症狀 | 先看這裡 |
|---|---|
| 畫面上完全沒有方框 | 先看影片左下角。寫「已隱藏 N 個正常框」=系統在數豬只是沒事,把「畫面上的框」改成「全部照畫」就看得到。寫「未偵測到豬隻」=真的沒偵測到:是不是在「夜間停 GPU」時段?或是晚上沒開燈? |
| 晚上完全沒有豬隻資料與體溫 | 沒開燈時一般畫面全黑,認不出豬,就沒有方框也沒有體溫。熱像畫面照常有。這是已知限制 |
| 熱像上的框整體偏掉 | 兩顆鏡頭視角不同,要校正一次。切到 Thermal →「校正對位」(回放也能做) |
| 體溫數字看起來不對 | 多半是框沒對準,量到旁邊的地板或牆。先做對位校正 |
| 關注清單一直是「首次分析尚未完成」 | 系統剛重啟,等一個分析間隔(預設 30 分鐘) |
| 某隻豬的編號一直在變 | 牠可能被其他豬或設備擋住。編號跳掉之後那段軌跡會被切斷,活動量算出來偏低,屬於已知限制 |
| 點了關注清單的豬,畫面上找不到牠的框 | 清單只列現在畫面上的豬,所以這種情況不該發生。真的遇到請回報,那是系統的問題不是你的 |
| 剛剛還在清單上的豬不見了 | 牠離開畫面了(走到角落、被擋住,或換了編號)。如果牠是異常,會退到清單下面收合的「最近消失」,採血紀錄則在通知中心 |
| 回放按 Thermal 之後畫面是空的 | 那個時段沒有熱像錄影。按回 RGB 會回到原本的位置 |
| 畫面停住不動 | 攝影機那端可能斷線了。左上角換一台攝影機再換回來試試 |
| 通知一直響 | 設定 → 推播通知 → 把「串流復活通知優先級」設成「最低」 |
| 右上角小圓點變色 | 硬碟空間不足或寫不進去。直播還在,但影像沒有存下來,要盡快處理 |