Contents — find the section you need

Change parameters and verify

Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.

Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.

The experiment controls are in English.

Open experiment panel in a new tab

Download reproduction source

Tarayıcınızda izdüşümlü alan deneyini deneyin

Yukarıdaki panel, Python kurmadan sentetik görüntü deneyini çalıştırır. Temiz, yeşil-etiket, karanlık veya kırpılmış sahneyi seçin; minimum parlaklık V, ilgi bölgesi ve mm/piksel değerini değiştirin. Dokuz ön ayar, yayımlanmış yedi koşulun tümünü, küçük boyutlu bir İB'yi ve boş bir seçimi içerir. Ön ayarlar her girdiyi sıfırlar; eşiği manuel olarak değiştirmek, kurtarılan-karanlık durumunu da değiştirir.

Girdiyi, çerçeve içi referansı, çıkarılan maskeyi ve hata bindirmesini inceleyin. Kırmızı yanlış pozitifleri, mavi yanlış negatifleri işaretler. Kahverengi bir sınır, girdi üzerinde seçili bir İB'yi işaretler. Bir sonucu A olarak kaydedin ve aynı görüntüleme ölçeğinde görüntüleri ve metrikleri karşılaştırmak için tek bir girdiyi değiştirin. Veri tablosu yatay piksel koşularını (sıfır tabanlı x/y ve uzunluk) verir; bunlar her görüntü bölgesini altörnekleme olmadan tam olarak yeniden oluşturur. Deneyi korumak için koşulları paylaşın veya sonuç JSON'unu indirin.

Görüntüler, gerçek fotoğraf yükleme veya kamera girdisi olmaksızın orijinal 320×240 geometrik sahneler olarak kalır. Orijinal NumPy geometri ve ölçüm fonksiyonları değişmeden yeniden kullanılır. Tarayıcı, yalnızca OpenCV dönüşümünü/aralık seçimini, üç sabit RGB rengin doğrulanmış bir arama tablosuyla değiştirir: arka plan (235,235,235), hedef (50,160,65) ve karanlık hedef (20,60,25). Bunların OpenCV 4.6.0 uint8 HSV değerleri (0,0,235), (64,175,160) ve (64,170,60)'tır. Bu genel amaçlı bir HSV dönüştürücü değildir. H 35–85 ve S 80–255 sabit kalır; V minimum değeri 0 ile 255 arasında (dahil) ayarlanabilir. Hiçbir morfoloji uygulanmaz.

Sabit etiket-hariç-tutan İB (50,20,230,190)'dur; küçük İB (140,60,20,30)'dur, x/y/genişlik/yükseklik piksel cinsinden. Hiçbiri bir bitkiye uyum sağlamaz. Ölçek, bir kalibrasyon değil, varsayılan bir referans-düzlem dönüşümü olarak 0,1 ile 1,0 mm/piksel arasında değişir. Ölçek değiştiğinde görüntü aynı kalır. touches_frame, evet için 1, hayır için 0 olarak görünür; boş bir seçimin kesinliği tanımsızdır (—). Kırpılmış bir sahne için mükemmel IoU, görüntü dışındaki kısımlar hakkında yine de hiçbir şey söylemez. Bu çıktılar biyokütleyi, büyümeyi, stresi veya gerçek yaprak yüzey alanını ölçmez.

Orijinal indirmeler ve kaydedilmiş temel değerler değişmeden kalır. Aşağıdaki yerel yeniden üretim talimatları isteğe bağlıdır. Tarayıcı bağdaştırıcısı OpenCV olmadan NumPy kullanır; NumPy kurulu olarak yerel olarak çalıştırmak için giriş noktasını, çekirdeğini ve paletini birlikte kaydedin.

leaf: experiment.py

leaf: leaf_kernel.py

leaf: palette.json

leaf: original.py

CEA algılama ve akış — CO₂ ve besin çözeltisi nerede ölçülür

Eşit görüntüler farklı yerlere ve zamanlara işaret edebilir

Rezervuar ÇO'su, bir yetiştirme kanalının çıkışındaki ÇO'dan farklıdır. Farkı kök oksijen tüketimine atfetmeden önce, sensörlerin karşılaştırılabilir zamanları gözlemleyip gözlemlemediğini, kalibrasyonun tutarlı olup olmadığını ve örneğin taşınma sırasında değişip değişmediğini kontrol edin.

Kök bölgesi kılavuzu, EC, pH, ÇO ve su dengesini ayırdı. Bu makale onları nerede ve nasıl karşılaştıracağınızı sorar. Sıcaklık/nem sensörü kılavuzundan gecikme ve kalibrasyon kavramlarını yeniden kullanır, CO₂, besin çözeltisi ve akışa özgü konuları ekler.

Aşağıdaki yerleşim tablosu ve araştırma prosedürü, önerdiğimiz tasarım yaklaşımıdır. Bunlar tesis ölçümleri, gerekli sensör sayıları veya evrensel mahsul alarm eşikleri değildir.

Hangi farkları gözlemlemeniz gerektiğine karar verin

Hedef Örnek karşılaştırma noktaları Eşlik eden kayıtlar
Mahsul bölgesi CO₂ Taç yakını, besleme havası, egzoz veya dönüş havası Yükseklik, dozlama, havalandırma, kapılar, sıcaklık ve bağıl nem
EC, pH ve su sıcaklığı Karışık rezervuar, yetiştirme kanalı girişi ve çıkışı Kaynak su, eklemeler, hacim ve dolaşım
ÇO Rezervuar, köklere yakın, kanal çıkışı Sıcaklık, havalandırma ve sensör teknolojisi
Sıvı akışı Tamamlama, seçili dallar, deşarj Akış, konum ve valf durumu
Seviye ve basınç Rezervuar, bir filtrenin yukarısı/aşağısı Seviye-hacim ilişkisi, basınç referansı ve yükseklik
Hava hareketi Rafların önü/arkası ve farklı yükseklikler Prob yönelimi, ortalama süresi ve fan durumu

İzleme için kalıcı noktalar, haritalama için taşınabilir ölçümler kullanın. Hareketli bir anket sırasında zaman değişimini ayırt etmek için sabit bir referans koruyun. Değişimlerin konum geçmişini bozmaması için konum kimliklerini sensör kimliklerinden bağımsız olarak atayın.

CO₂ öz-kalibrasyonu yetiştirme koşullarına uyuyor mu?

Bir CO₂ çıkışının hemen yanındaki bir ölçüm, otomatik olarak tüm taç örtüsünü temsil etmemelidir. Enjeksiyon, besleme/egzoz havası ve insan nefesiyle ilişkileri kaydedin. Dozlama ekipmanını teşhis eden bir nokta, mahsul koşullarını değerlendiren bir noktadan farklı bir amaca hizmet eder.

Kalibrasyon algoritmasını kontrol edin. 2018 Sensirion SCD30 saha-kalibrasyon notu, 400 ppm'ye karşılık gelen minimum bir konsantrasyon kullanan ve o konsantrasyona düzenli maruz kalma gerektiren ASC'yi açıklar.

Çıkarımımız, sürekli zenginleştirilmiş odaların bu varsayımı karşılamayabileceğidir. Bu, her CO₂ sensörünü değil, belgelenmiş algoritmayı ilgilendirir. Seçilen model ve ürün yazılımının talimatlarını izleyin ve referans gaz veya kalibre edilmiş bir cihazla karşılaştırma planlayın. Tarihsel 400 ppm varsayımı, garantili bir günümüz dış mekan kalibrasyon değeri değildir.

Bir CO₂ cihazına yerleşik sıcaklık/bağıl nem çıktıları, temsili taç örtüsü havası yerine kendi muhafazasını tanımlayabilir. Çevresel telafi girdilerini, mahsul ortamını değerlendirmek için kullanılan ölçümlerden ayırt edin.

EC, pH ve ÇO farklı kontroller gerektirir

USGS çok parametreli cihaz kılavuzu, depolamayı, bakımı, kalibrasyonu, ölçümü ve raporlamayı birbirine bağlar. Doğal-su kapsamı, mahsul ayar noktalarını veya belirli bir besin çözeltisi için uygunluğu belirlemez.

Aşağıdaki önerilen kontrol listesi bu genel yaklaşımı uygular; gerçek prosedürler ve çözeltiler cihaz belgeleriyle eşleşmelidir.

Parametre Doğrulanacak öğeler
EC İletkenlik standardı ve sıcaklık, beklenen aralık, hücre sabiti ve sıcaklık telafisi
pH Aralığa uygun tamponlar, sıcaklık, elektrot/bağlantı durumu ve depolama
ÇO Optik veya elektrokimyasal yöntem, kalibrasyon koşulları, basınç/tuzluluk telafisi, membran veya kapak durumu
Tümü Ayarlama öncesi hata, temizlik/ayarlama sonrası sonuçlar, standart kimliği, tarih ve stabilizasyon süresi

Bir standartta uyum, kurulum sonrası temsili okumaları belirlemez. Eklemelerden hemen sonra kabarcıkları, tortuları, durgun sıvıyı ve yerel konsantrasyon farklarını araştırın.

ÇO teknolojisi önemlidir. YSI'nin ölçüm kılavuzu, optik sensörlerin oksijen tüketmediğini ve ölçüm ilkesi olarak karıştırma gereksinimi olmadığını, ancak akışın tepki süresini iyileştirebileceğini açıklar. Elektrokimyasal ve optik cihazlar için aynı akış gereksinimlerini varsaymayın. Optik bir sensör bile hedeflenen kök ortamını temsil eden sıvıyı örneklemesi gerekir.

Bir örnekleme hattı sensöre daha eski sıvı getirir

Uzak bir akış hücresi, görüntüleme zamanını örnekleme noktasındaki koşullardan ayırır. Sentetik bir hat hacmi 0,50 L ve sabit akış 0,25 L/dk için, karışım veya dağılım olmadan ideal yer değiştirme varsayın:

t_{transport}=V_{line}/Q=0.50/0.25=2.0\ \mathrm{min}
Diagram 1 · Use the button to switch views
Örnek taşımayı, sensör tepkisini ve kayıt alımını ayıran kavramsal sıra, sentetik iki dakikalık bir taşıma süresiyle.

İki dakika yalnızca ideal hat taşımasını tanımlar. Hücre karışımı, sensör tepkisi ve iletişim gecikmesi ek etkilerdir.

Akışı 0,50 L/dk'ya ikiye katlamak, bu ideal süreyi bir dakikaya indirir. Gerçek hatlar ve hücreler karışır; sıcaklık ve gaz değişimi de örneği değiştirebilir. Zaman damgalarını iki dakika kaydırmak, orijinal koşulları mutlaka yeniden oluşturmaz.

Örnekleme konumunu, hat/hücre yapılandırmasını, akışı, cihaz ölçüm zamanını ve alım zamanını ayrı ayrı kaydedin. Örnekleme noktaları arasında geçiş yaparken önceki örnekten taşınmayı da kontrol edin.

Pompa komutunu, akışı, seviyeyi ve basıncı karşılaştırın

Pompa AÇIK, bir akış ölçümü değildir. Toplam teslimat ve her dala teslimat farklı gözlemlerdir. Seçilen debimetrenin düz hat, dolu boru, aralık ve kabarcıklara ilişkin gereksinimlerini izleyin.

Seviyeyi rezervuar geometrisini kullanarak hacme dönüştürün. Sabit kesit için, hacim değişimi alan çarpı seviye değişimine eşittir; bu dönüşüm eğimli tabanlı kaplar için evrensel değildir. Basınç tabanlı seviye algılama da yoğunluk ve referans basıncın dikkate alınmasını gerektirir.

Filtre diferansiyel basıncı karşılaştırmaları destekleyebilir, ancak akışa da bağlıdır. Çalışma koşulları farklı olduğunda bir yükselme tek başına tıkanmayı kanıtlamaz. Ölçüm yüksekliklerini, gösterge ile mutlak basıncı ve birimleri kaydedin.

Tutarsızlıkları bulmak için bir su dengesi kalıntısı kullanın

Burada sınır yalnızca rezervuardır. Q_{in} her gelen akışı ve Q_{out} dolaşım beslemesi ve dönüşü dahil her giden akışı içerir. Bu, önceki makalenin tüm-sistem sınırından farklıdır. Sentetik örnek, buharlaşma gibi diğer terimleri sıfır olarak ayarlar.

r=(V_1-V_0)-\sum_i(Q_{in,i}-Q_{out,i})\Delta t_i

L/dk ve dakika kullanmak, r kalıntısını L cinsinden verir. Orijinal örneğimizde, giriş akışı beş dakika boyunca 1,0 L/dk ve çıkış akışı 0,2 L/dk'dır. Öngörülen kazanç 4 L'dir, seviyeden çıkarılan hacim ise yalnızca 100 L'den 101 L'ye yükselir. Kalıntı −3 L'dir.

Bu, kaydedilmemiş akışların, akış/seviye sapmasının, zamanlama farklarının veya atlanan kayıpların araştırılmasını gerektirir. Sızıntının kanıtı değildir.

from math import isfinite


def transport_minutes(line_l, flow_l_min):
    if not all(isfinite(x) for x in (line_l, flow_l_min)):
        raise ValueError("finite values required")
    if line_l < 0 or flow_l_min <= 0:
        raise ValueError("nonnegative volume and positive flow required")
    return line_l / flow_l_min


def residual_l(v0, v1, intervals):
    if not all(isfinite(v) and v >= 0 for v in (v0, v1)):
        raise ValueError("invalid tank volume")
    if not intervals:
        raise ValueError("intervals required")
    predicted = 0.0
    for minutes, inflow, outflow in intervals:
        if not all(isfinite(x) for x in (minutes, inflow, outflow)):
            raise ValueError("finite interval values required")
        if minutes <= 0 or min(inflow, outflow) < 0:
            raise ValueError("invalid interval")
        predicted += (inflow - outflow) * minutes
    return (v1 - v0) - predicted


print(f"transport: {transport_minutes(0.50, 0.25):.1f} min")
print(f"residual: {residual_l(100, 101, [(5, 1.0, 0.2)]):.1f} L")

measurement_check.py olarak kaydedin ve 2.0 min ile -3.0 L elde etmek için python3 measurement_check.py komutunu çalıştırın. Akışlar her aralık içinde sabittir ve aralıkların tüm gözlem dönemini boşluk veya örtüşme olmadan kapsadığı varsayılır. Bu küçük örnek hiçbir zaman damgası kabul etmez, bu yüzden bu varsayımı otomatik olarak doğrulayamaz.

Son hacmi 104 L olarak değiştirin ve kalıntı sıfır olur. Beş dakikayı aynı akışlarda iki ve üç dakikaya bölmek sonucu değişmeden bırakır. Ölçülen veriler için, eksik akışı sıfır olarak ele almak yerine eksik bir integrali geçersiz kılın.

Her uç nokta hacminin 0,5 L'lik bir hata sınırına, her akışın 0,1 L/dk'lık bir hata sınırına sahip olduğunu ve sürenin kesin olduğunu varsayın. Beş dakika boyunca kalıntı hatasına en kötü durum katkısı 0.5+0.5+5(0.1+0.1)=2.0 L'dir. Bu varsayımlar tek başına 3 L'lik bir tutarsızlığı açıklayamaz. Bu açıklayıcı bir sınırdır, ürün doğruluğu veya istatistiksel bir güven aralığı değildir. Bir arızayı teşhis etmeden önce sınırları ve atlanan terimleri doğrulayın.

Dolaşımı havalandırmadan ayırın

Dolaşım iç mekan havasını hareket ettirir ve karıştırır; havalandırma havayı dışarıyla değiştirir. NC State'in sera kılavuzu bunları ayrı ele alır. Bir dolaşım fanının anma akışını dış değişim olarak bir CO₂ dengesine koymayın.

Taç örtüsü hava hızı anketleri için, prob yönelimini, konumu, ortalama süresini, aydınlatmayı ve fan durumunu kaydedin. Bir rafın önündeki akış, arkasındaki akışı belirlemez. Ortalamaların yanı sıra mekansal farkları ve dalgalanmaları da koruyun ve mahsul büyümesi akış yollarını değiştirdiğinde anketi tekrarlayın. Tek bir hava hızı, terlemeyi veya hastalığı doğrudan tahmin etmez.

Ölçüm zincirini devreye alın

  1. Gözlem amacını ve sınırını tanımlayın; konum kimliklerini, birimleri ve zamanı hizalayın.
  2. Standartlara veya referans cihazlara karşı karşılaştırın ve ayarlama öncesi/sonrası sonuçları koruyun.
  3. Cihaz farklarını, mekansal anketlerden ayrı olarak birlikte konumlandırılmış ölçümler yoluyla araştırın.
  4. İşletme kayıtlarını gözlemlerle karşılaştırın, taşıma, tepki ve iletişim gecikmelerini birbirinden ayırt edin.
  5. Tutarsızlıkları bulmak için su dengesini ve birden fazla ölçümü kullanın, ardından rakip nedenleri araştırın.

Bu, sonraki kontrol ve tahmin için gözlemler oluşturur. Bitki-görüntü tahmini aynı disiplini gerektirir: görünen değişiklikleri büyüme olarak yorumlamadan önce görüntü zamanını, aydınlatmayı ve bakış açısını koruyun.

CEA bitki görüntüleri — izdüşümlü alanı ölçün, yaprak alanını ayırt edin

Bir fotoğraftaki daha fazla yeşil, daha fazla yaprak anlamına mı gelir?

Aynı bitki, yaprak yönelimi, örtüşme, aydınlatma veya kamera konumu değiştiğinde farklı bir görünür bölge kaplayabilir. Bu nedenle ilk tahmin görevimiz, bir görüntüde seçilen bir bölgenin izdüşümlü alanı ile sınırlıdır. Yaprak yüzey alanını, kütleyi, verimi veya stresi doğrudan tahmin etmez.

Önceki algılama kılavuzu, mekansal, cihaz ve zamanlama farklarını ayırdı. Görüntülerin de alım ve işleme kayıtlarına ihtiyacı vardır. Burada, örtüşen elipsler sentetik girdiler oluşturur; ölçülmüş bitki fotoğrafları veya eğitilmiş modeller yoktur. Kontrollü örnekler, gerçek bitkiler üzerinde değerlendirme tasarlamadan önce hata nedenlerini ortaya çıkarır.

Önce niceliği tanımlayın

Hedef piksellerin bire eşit olduğu ikili bir maske M(u,v) için piksel sayısı N=\sum_{u,v}M(u,v)'dir. Varsayılan izotropik bir ölçek s [mm/piksel] verildiğinde, referans-düzlem eşdeğer alanı:

A_{proj}=Ns^2

Sentetik temel değerimiz 14.738 piksel içerir. 0,5 mm/piksel'de bu 3.684,50 mm² olur. Ölçek, otomatik olarak ölçülmek yerine örnekleme amacıyla sağlanmıştır.

Nicelik Bu sayfanın ölçtüğü Olmadığı şey
Maske piksel sayısı Seçilen piksel sayısı Bir kontur tarafından çevrelenen geometrik alan
Referans-düzlem izdüşümlü alan Piksel sayısı çarpı karesi alınmış ölçek Kavisli yaprakların gerçek yüzey alanı
Görünür birleşim Yukarıdan görünen hedef bölge Örtüşen her yaprağın alanının toplamı
Yeşil bölge Renge göre seçilen adaylar Yaprakların garantili anlamsal tanımlanması

PlantCV'nin boyut analizi, benzer şekilde etiketlenmiş bölgelerden özellikler hesaplar ve piksel boyutları yoluyla dönüşümü destekler. Bölge çıkarımını birim dönüşümünden ayrı tutun. Kodumuz pikselleri doğrudan sayar ve PlantCV'yi çağırmaz.

Alımı ve ölçeği tutarlı tutun

Kamera konumunu ve yönelimini, odak uzaklığını, görüntü boyutlarını, pozlamayı, beyaz dengesini, aydınlatmayı, bitki kimliğini ve zaman damgasını kaydedin. Pozlama veya beyaz dengesi otomatikse, o durumu kaydedin. Değişen görüntü koşullarına uygulanan sabit bir eşik, renk değişikliklerini görünür alan değişikliklerine dönüştürebilir.

200 piksele yayılan bilinen bir 100 mm uzunluk, o konumda 0,5 mm/piksel verir. Referansı ölçüm düzlemine yerleştirin ve kamerayı pratik olduğunca dikeye yakın hizalayın. Bozulma veya perspektif önemliyse, kamera kalibrasyonu ve uygun düzlemsel düzeltme kullanın. Farklı yatay ve dikey ölçekler Ns_xs_y gerektirir.

Zemindeki bir referansın, üzerinde büyüyen yaprakların ölçeğini paylaşması gerekmez. Düzlemsel düzeltme, üç boyutlu bir taç örtüsünü eş düzlemli hale getirmez. Bu varsayımlar geçerli olmadığında, fiziksel yaprak alanı iddia etmek yerine sabit alım altında piksel sayılarını veya referans-düzlem eşdeğer alanını raporlayın.

0,5 yerine 0,6 mm/piksel kullanmak, aynı maskenin alanını 1,44 ile çarpar: %44'lük bir artış. Doğru çıkarım, yanlış birim dönüşümüyle bir arada var olabilir.

Renk adaylarını seçin

OpenCV eğitimi, HSV'ye dönüşümü ve inRange ile renk-aralığı seçimini gösterir. Yeşili seçmek, bir yaprağı tanımakla aynı şey değildir.

Girdiler 320×240 pikseldir. OpenCV'nin 8-bit HSV gösteriminde, bu örnek H 35–85, S 80–255 ve V 100–255'i seçer. H, 0–360 arası bir açı olarak doğrudan girilmez. Üretilen dizilerimiz RGB'dir, bu yüzden dönüşüm COLOR_RGB2HSV kullanır; bu dönüşümü imread tarafından döndürülen BGR görüntülerinde körü körüne yeniden kullanmayın.

Çekirdek üç satırdır. Görüntü üretimi, koşul karşılaştırması ve doğrulama, tam indirmede yer alır.

hsv = cv2.cvtColor(rgb, cv2.COLOR_RGB2HSV)
mask = cv2.inRange(hsv, (35, 80, min_v), (85, 255, 255)) != 0
pixels = int(np.count_nonzero(mask))

Hiçbir morfolojik doldurma veya küçük bileşen kaldırma uygulanmaz. Bu tür bir işleme eklerken, dar yaprakları veya yapraklar arasındaki boşlukları referans maskelere karşı değiştirip değiştirmediğini kontrol edin.

Hataları aynı geometriyle karşılaştırın

Üretilen referans, üç elipsin çerçeve içi görünür birleşimidir. Örtüşme bir kez sayılır ve çerçeve dışındaki kısımlar hariç tutulur.

Sentetik temel değer, yeşil arka plan etiketi ve karartılmış sol taraf; yanlış pozitifler kırmızı, yanlış negatifler mavi işaretlenmiştir.

Kırmızı, hedef olarak seçilen arka planı işaretler; mavi, kaçırılan hedef pikselleri işaretler. Yeşil bölgeler girdi renklerini korur. Bunlar sentetik şekillerdir, bitki fotoğrafları değildir.

Koşul Seçilen pikseller Düzlem-eşdeğeri alan [mm²] IoU Yorum
clean 14.738 3.684,50 1,000 Sentetik referansla eşleşir
green_tag 15.538 3.884,50 0,949 800 arka plan pikseli ekler
green_tag_roi 14.738 3.684,50 1,000 Bu düzende etiketi hariç tutar
dim 7.428 1.857,00 0,504 Şekli değiştirmeden neredeyse yarısını kaçırır
dim_lower_v 14.738 3.684,50 1,000 V minimum 40 bu karanlık bölgeyi kurtarır
wrong_scale 14.738 5.305,68 1,000 Doğru maske, %44 daha büyük dönüşüm
clipped 13.016 3.254,00 1,000 Çerçeve içi referansla eşleşir, ancak nesnenin tamamıyla değil

Sabit green_tag_roi, (50,20)'de başlar, genişliği 230 ve yüksekliği 190 pikseldir. Mahsulden bağımsız bir ilgi bölgesi olarak değil, bu sentetik etiketten kaçınmak için seçilmiştir. İB'nin ötesindeki büyüme, gerçek hedef pikselleri hariç tutar.

Minimum V'yi düşürmek evrensel bir çözüm değildir. Burada karanlık hedefi kurtarır, ancak gerçek sahnelerde koyu yeşil arka planı kabul edebilir. Eşikleri her görüntünün cevaplarına karşı ayarlamayın ve doğruluğu yalnızca o aynı görüntülerde raporlamayın.

Alanı ve konumu ayrı ayrı değerlendirin

Tahmin P ve referans G için, birleşim üzerinden kesişim mekansal örtüşmeyi ölçer:

IoU=\frac{|P\cap G|}{|P\cup G|}

Eşit sayıda fazla ve kaçırılan piksel, yanlış konumlara rağmen sıfır alan hatası üretir. Bir referans [0,1,1,0] ve tahmin [1,1,0,0] her biri iki seçili piksel içerir, ancak IoU'ları 1/3'tür.

Çıktılar ayrıca kesinliği (seçilen piksellerin doğru kesri) ve duyarlılığı (kurtarılan referans piksel kesri) içerir. mask_area_error_percent, ölçek kalibrasyonundan kaynaklanan fiziksel hata değil, referansa karşı piksel-sayısı hatasıdır. wrong_scale için sıfır kalır. İki boş maskenin IoU'su dahil olmak üzere tanımsız oranlar, varsayılan mükemmel bir puan yerine JSON null'dır.

touches_frame, bir görüntü kenarına değen seçili pikselleri işaretler. clipped için doğrudur. Her eksik nesneyi tespit etmez: segmentasyon kenar piksellerini kaçırabilir veya dahili bir İB, hedefin bir kısmını kaldırabilir. Bayrak yanlış olsa bile görüntüyü ve İB'yi inceleyin.

İndirin ve yeniden üretin

Tam ZIP dosyasını, Python kaynağını, beklenen sonuçları, README'yi ve manifesti indirin. ZIP, aynı kaynaktan yeniden üretilebilen girdileri, referansları, çıkarılan maskeleri ve hata bindirmelerini içerir.

Test edilen ortam: Linux x86_64, Python 3.12.3, NumPy 1.26.4 ve OpenCV 4.6.0. Bağımlılık sürümleri, yeniden üretim için sabitlenmiştir, diğer işletim sistemleri veya Python sürümleri için bir sertifikasyon değildir.

ZIP'i çıkardıktan sonra çalıştırın:

python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python experiment.py --self-test
.venv/bin/python experiment.py --verify expected.json --out reproduced

Windows'ta, .venv/bin/python'ı .venv\Scripts\python.exe ile değiştirin. Çıktı dizini mevcut olmamalıdır; mevcut çıktıların üzerine yazılmaz. Sonuç JSON'u ve her koşulun PNG dosyaları kaydedilir. Temel çıktılar samples/ altında bulunur.

Minimum V'yi şununla değiştirin:

.venv/bin/python experiment.py --min-v 40 --out lower-v

Yalnızca dim_lower_v her zaman 40 kullanır; diğer koşullar sağlanan değeri kullanır. Değiştirilen sonuçlar, kasıtlı olarak temel expected.json ile karşılaştırmada başarısız olur. Deneyi değiştirdikten sonra temel doğrulamanın geçmesini beklemeyin.

Yedi test; bilinen bir dikdörtgeni, eşit-alan/farklı-konum maskelerini, boş maskeleri, yedi durum arasındaki ilişkileri, geçersiz girdileri, değiştirilmiş beklenen sonuçları ve İB atlamalarını kapsar. Orijinal indirmede gerçek fotoğraf alma özelliği yoktur; tarayıcı bağdaştırıcısı yukarıda mevcuttur.

Biyolojik iddialarda bulunmadan önce ölçülen bitkiler üzerinde değerlendirin

Aşağıdaki, bu sentetik örnek tarafından tamamlanan bir çalışma değil, önerilen bir sonraki aşama değerlendirmesidir.

  1. Bitki kimliklerini, tarihleri, aydınlatmayı, kamera geometrisini ve orijinal görüntüleri koruyun.
  2. Sapların veya yaşlanmış yaprakların sayılıp sayılmadığı dahil olmak üzere hedef üyeliğini tanımlayın ve insan referans maskeleri oluşturun.
  3. Eşik geliştirme görüntülerini değerlendirme görüntülerinden ayırın. Yalnızca bitişik video karelerini ayırmak yerine bitkiye veya alım tarihine göre bölünmeleri düşünün.
  4. Alan metriklerini, IoU'yu ve hata bindirmelerini koruyarak hataları aydınlatmaya, arka plana, örtüşmeye ve kırpmaya göre raporlayın.
  5. Gerçek yaprak alanını veya kuru kütleyi tahmin etmek için, karşılık gelen bağımsız referans ölçümlerini toplayın ve bu eşlemeyi ayrı bir model olarak doğrulayın.

Zaman serisi izdüşümlü-alan değişiklikleri, duruştan veya örtüşmeden kaynaklanabilir. Bir görüntü metriği üretmek, büyüme hızını veya stresi belirlemez. Önce gözlemi yeniden üretilebilir hale getirin, ardından neyi temsil ettiğini test etmek için referans verileri kullanın.

CEA kök bölgesi — EC, pH, oksijen ve su dengesini ayırma

Su seviyesi düştüğünde ne değiştirilmelidir?

Bir besin çözeltisi 100 L'den 90 L'ye düşer. Bu gözlem tek başına buharlaşmayı, bitki su alımını, sızıntıyı veya drenajı ayırt edemez. Besin alımını da belirlemez. Hacmi geri yüklemek ve besin bileşimini geri yüklemek ayrı kararlardır.

Işık ortamı kılavuzunu takiben, bu makale kök ortamını inceler. Yeniden dolaşan bir çözelti sistemini tanıtır; bir mahsul tarifi veya otomatik dozlama uygulaması değildir. Tüm sayısal örnekler sentetiktir.

Kök bölgesi, köklerin çevreleriyle su, besin ve gaz alışverişinde bulunduğu bölgedir. Bir rezervuar okuması yararlıdır, ancak kök yüzeyini, bir kanalın ucunu veya bir alt tabakanın içini tanımlaması gerekmez.

Beş ölçümü birbirinden ayrı tutun

Ölçüm Anlam ve birimler Tek başına belirlemediği şey
EC Örneğin mS/cm cinsinden elektriksel iletkenlik Bireysel nitrat, potasyum veya kalsiyum konsantrasyonları
pH Hidrojen-iyon aktivitesiyle ilgili logaritmik bir nicelik Hedef pH'a ulaşmak için gereken asit veya baz
Çözünmüş oksijen (ÇO) mg/L veya doygunluk yüzdesi Kök yüzeyine oksijen teslim hızı
Su sıcaklığı Ölçüm konumunda °C Hava sıcaklığı veya tam kök sıcaklığı dağılımı
Hacim ve akış Örneğin L ve L/dk Bireysel besinlerin alımı

Bu bir ölçüm-planlama tablosudur. Kabul edilebilir koşullar mahsule, büyüme aşamasına ve üretim sistemine bağlıdır.

EC bileşimi yeniden oluşturamaz

1 mS/cm = 1.000 µS/cm = 1 dS/m. Birimleri kaydedin. İletkenlik sıvı sıcaklığıyla da değişir: ölçülen sıcaklığı, telafi ayarlarını ve referans sıcaklığını koruyun ve telafi edilmiş okumaları telafi edilmemiş olanlardan ayırt edin.

Oklahoma Eyalet Üniversitesi'nin su testi kılavuzunda açıklandığı gibi, EC bireysel tuz konsantrasyonlarını ortaya çıkarmaz. Tek bir okuma, bir besinin tükenmesini başka bir iyonun birikmesinden ayırt edemez.

EC'den türetilen bir "ppm" gösterimi de bireysel besinlerin bir ölçümü değildir. Dönüşüm faktörünü kaydedin ve onu bir laboratuvar konsantrasyon sonucundan ayırt edin. Bileşim gerektiğinde kaynak-su ve çözelti analizini kullanın.

OSU'nun besin yönetimi kılavuzu, kaynak-su testini, tuz konsantrasyonunu, pH'ı, alkaliniteyi ve besin oranlarını ilgili olarak tanımlar. İşletimsel çıkarımımız, EC ayar noktasına dönüşü orijinal formülasyonun geri yüklendiğinin kanıtı olarak ele almaktan kaçınmaktır.

pH ve alkaliniteyi ayrı ayrı kaydedin

pH, mevcut asitliği veya bazikliği tanımlar. Logaritmik olduğu için, iki pH okumasının hacim ağırlıklı ortalaması genellikle karışık çözeltinin pH'ını vermez. USGS: pH ve Su

Alkalinite, asit-nötrleştirme kapasitesini ölçer. Aynı başlangıç pH'ına sahip iki su, alkaliniteleri farklı olduğunda aynı asit eklemesine farklı tepki verebilir. USGS: Alkalinite ve Su

0,5 birimlik bir pH hatası için her zaman aynı dozu ekleyen bir kural, bu nicelikleri karıştırır. Bir müdahaleyi değerlendirmek için, kaynak suyu, rezervuar hacmini, eklenen maddeyi ve miktarı ve karıştırmadan sonraki ölçüm zamanını kaydedin. Aşağıdaki su dengesi gereken dozu hesaplayamaz.

Oksijen bir teslim yoluna ihtiyaç duyar

Denge oksijen çözünürlüğü, su sıcaklığına, atmosferik basınca ve tuzluluğa bağlıdır. USGS DOTABLES, çözünürlüğü hesaplamak için bu koşulları kullanır. Eşit basınç ve tuzlulukta, daha sıcak su genellikle dengede daha az çözünmüş oksijen tutar. mg/L ve doygunluk yüzdesini karşılaştırırken dönüşüm koşullarını kontrol edin.

Kökler solunum için oksijene ihtiyaç duyar. Cornell'in hidroponik yapraklı yeşillikler kılavuzu, kök oksijen tedarikini ve su sıcaklığını tartışır. Görünüşte yeterli bir rezervuar ÇO okuması, yoğun bir kök kütlesinin içinde aynı koşulları belirlemez. Yetiştirme kanalının girişi ve çıkışı arasındaki farklar dahil olmak üzere dolaşımı, havalandırmayı ve örnekleme konumunu kaydedin.

Diagram 2 · Use the button to switch views
Harici girdiler ve kayıplar, iç dolaşım ve ayrı rezervuar ile kök bölgesi gözlemlerine sahip kavramsal bir yeniden dolaşım sistemi.

Tüm sistemi çevreleyen bir sınır için, iç dolaşım harici bir su girdisi değildir. Diyagram, tam bir karışımı veya tekdüze oksijeni ima etmez.

Bir alt tabakayla, su tutma ve hava yolları da önemlidir. Yalnızca rezervuar ÇO'su, alt tabaka havalandırmasını belirlemez. Aşağıdaki tek-sıvı-bölmeli hesaplamayı doğrudan bir alt tabakanın içine uygulamayın.

Ayrı su ve çözelti hesapları tutun

Rezervuar, borular ve yetiştirme kanalları dahil olmak üzere tüm yeniden dolaşan sistemi çevreleyen bir sınır seçin. Bir aralık boyunca, harici eklemeler V_{in}, sıvı deşarjı V_{out} ve buharlaşma artı bitkilere aktarılan su V_w olsun, tümü L cinsinden.

V_1=V_0+V_{in}-V_{out}-V_w

İç pompa dolaşımını tamamlama suyu olarak eklemeyin. Yalnızca-rezervuar bir sınır, bunun yerine giden ve dönen akışlarını açıkça sayardı.

İzlenen bir çözelti için, kütle M [mg] ve konsantrasyon C=M/V [mg/L]'dir:

M_1=M_0+M_{in}-M_{out}-U-R

U bitkilere aktarımdır; R, çökelme gibi sıvı fazından net uzaklaştırmadır. Sıvıdan uzaklaştırma, maddenin yok edilmesi anlamına gelmez. Sıvı deşarjı, buharlaşmanın aksine hem suyu hem de çözeltiyi taşır. Sürekli deşarj için, değişen konsantrasyonu hesaba katmak üzere M_{out}=\int C_{out}(t)Q_{out}(t)dt kullanın.

Aşağıdaki orijinal aritmetik örnek bu muhasebeyi kontrol eder. Ölçülmüş bir bitki alım hızı, gübre tarifi veya EC tahmini değildir. Bir bileşenin 10.000 mg'ını içeren 100 L ile başlayın: 100 mg/L. Ekleme veya çökelme olmadığını varsayın.

Sentetik durum Son hacim Son çözelti kütlesi Son konsantrasyon
A: 10 L su kaybeder; çözelti kalır 90 L 10.000 mg 111,11 mg/L
B: 10 L su ve 2.000 mg bitkilere aktarılır 90 L 8.000 mg 88,89 mg/L
C: 10 L tekdüze çözelti deşarj edilir 90 L 9.000 mg 100,00 mg/L

Aynı hacim azalması, yükselen, düşen veya değişmeyen konsantrasyona eşlik edebilir. İzlenen çözeltiden hiç içermeyen 10 L su eklemek A'yı 100 mg/L'ye geri yükler, ancak B yalnızca 80 mg/L'ye ulaşır. Hacmi geri yüklemek çözelti kütlesini geri yüklemez.

Karşılaştırmayı Python'da yeniden üretin

Aşağıdakini root_zone.py olarak kaydedin ve python3 root_zone.py komutunu çalıştırın. Yalnızca Python'un standart kütüphanesi gereklidir.

from math import isfinite


def concentration(volume_l, mass_mg):
    if not (isfinite(volume_l) and isfinite(mass_mg)):
        raise ValueError("finite values required")
    if volume_l <= 0 or mass_mg < 0:
        raise ValueError("positive volume and nonnegative mass required")
    return mass_mg / volume_l


initial_v, initial_m = 100.0, 10000.0
initial_c = concentration(initial_v, initial_m)
cases = {
    "A": (initial_v - 10, initial_m),
    "B": (initial_v - 10, initial_m - 2000),
    "C": (initial_v - 10, initial_m - 10 * initial_c),
}
for name, (volume, mass) in cases.items():
    print(f"{name}: {concentration(volume, mass):.2f} mg/L")
print(f"B + water: {concentration(cases['B'][0] + 10, cases['B'][1]):.2f} mg/L")

Çıktılar 111.11, 88.89, 100.00 ve 80.00 mg/L'dir. B'deki 2.000 mg'lık uzaklaştırmayı 1.000 mg'a değiştirin: hacim kaybından sonra konsantrasyon 100 mg/L olur. Konsantrasyon değişmese bile alım gerçekleşebilir. Sıfır hacim ve negatif kalan kütle hatalar oluşturur.

Bu kod EC, pH veya ÇO hesaplamaz. Bir bileşen için doğru muhasebe, çok bileşenli kimyasal dengeyi veya mahsul tepkisini doğrulamaz.

Sırada neyi gözlemleyeceğinize karar verin

Bunlar önerilen gözlem kombinasyonlarıdır, otomatik dozlama kuralları değildir.

Gözlem Sonraki kontroller
Hacim düşerken EC yükselir Tamamlama ve deşarj geçmişi, sıvı sıcaklığı ve telafi, su ve çözelti bileşimi
Bitki durumu değişirken EC sabittir Bireysel bileşenler, kök bölgesi ÇO'su ve sıcaklığı, akış, ışık ve hava geçmişi
Ayarlamadan sonra pH tekrar değişir Karıştırma ve ölçüm zamanları, kaynak-su alkalinitesi, ekleme geçmişi
Rezervuar ve çıkış ÇO'su farklıdır Senkronize okumalar, sensör durumu, dolaşım, havalandırma ve kök dağılımı

Zamanı, konumu, birimleri ve kalibrasyonu su hacmi, tamamlama, deşarj ve eklemelerle ilişkilendirin. Detaylı sensör yerleşimi, bireysel besin yönetimi ve dozlama kontrolü sonraki adımlardır. Buradaki temel, gözlemlenen bir konsantrasyonu sistemde kalan kütleden ayırt etmektir.

What to read next

Örnekleme yoluyla kaybolan değişiklikleri inceleyin.Örnekleme ve örtüşme: Daha hızlı yoklamanın neden yeterli olmadığıReview the backgroundCEA iklim kontrolü — sıcaklık, nem, sensörler, tepki ve etkileşimContinue the seriesCEA besin dozajlama — tank muhasebesi, pompa kalibrasyonu ve durum kontrolü