VisioForge

Last updated: Styczeń 2026

Alternatywa dla Accord.NET: Przewodnik migracji do VisioForge .Net SDK

Zamień zarchiwizowany Accord.NET na nowoczesne alternatywy .NET 6-10

Programiści C# migrujący z Accord.NET (Accord.Video, Accord.Vision, Accord.MachineLearning) na nowoczesne alternatywy .NET 6-10

Dlaczego warto zastąpić Accord.NET?

Accord.NET włączył kod źródłowy AForge.NET w 2015 roku i rozszerzył go o uczenie maszynowe, statystykę i dodatkowe algorytmy wizji komputerowej. Projekt jest teraz zarchiwizowany na GitHub bez aktywnego utrzymania. Jeśli szukasz zamiennika lub alternatywy dla Accord.NET na .NET 6-10, ten przewodnik obejmuje każdą ścieżkę migracji.

RyzykoWpływ
Projekt zarchiwizowanyBrak poprawek błędów, łatek bezpieczeństwa ani aktualizacji
Legacy .NETTylko .NET Framework — brak wsparcia dla .NET 6, 8, 9 lub 10
Przestarzałe MLPowstało przed ML.NET, TensorFlow.NET, ONNX Runtime
Kod wideo AForgeTe same porzucone komponenty wewnętrzne AForge.Video do przechwytywania wideo
Tylko WindowsWideo oparte na DirectShow, brak wsparcia wieloplatformowego
BezpieczeństwoNiezałatane luki w przetwarzaniu obrazów/wideo

Strategia migracji

Accord.NET obejmował trzy domeny. Każda migruje do innego nowoczesnego stosu:

Domena Accord.NETNowoczesny zamiennik
Przechwytywanie wideo (Accord.Video)VisioForge Video Capture SDK .Net
Wizja komputerowa (Accord.Vision, Accord.Imaging)VisioForge .Net SDK (wbudowane detektory OpenCV 4.11 / DLib) lub samodzielny OpenCvSharp
Uczenie maszynowe (Accord.MachineLearning, Accord.Neuro)ML.NET lub ONNX Runtime

Migracja przechwytywania wideo: Accord.Video → VisioForge

Accord.Video to zasadniczo AForge.Video z drobnymi dodatkami. Jeśli używasz `VideoCaptureDevice`, `MJPEGStream` lub `ScreenCaptureStream` z Accord.NET, zamień je na VisioForge Video Capture SDK do nowoczesnego przechwytywania z kamery internetowej w C#, streamingu RTSP i nagrywania ekranu na .NET 6-10.

Mapowanie klas

Klasa Accord.VideoZamiennik VisioForge
`VideoCaptureDevice``VideoCaptureCoreX` + `VideoCaptureDeviceSourceSettings`
`MJPEGStream``VideoCaptureCoreX` + `RTSPSourceSettings`
`ScreenCaptureStream``VideoCaptureCoreX` + `ScreenCaptureSourceSettings`
`FileVideoSource``MediaPlayerCoreX` lub `VideoEditCoreX`
`NewFrameEventArgs`Zdarzenie `OnVideoFrameBuffer`

Przykład przechwytywania wideo w C#

Accord.NET — przechwytywanie z kamery (przed)

C#
var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
var videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += (s, e) =>
{
    pictureBox.Image = (Bitmap)e.Frame.Clone();
};
videoSource.Start();

VisioForge — przechwytywanie z kamery (po)

C#
var capture = new VideoCaptureCoreX(videoView);
var devices = await DeviceEnumerator.Shared.VideoSourcesAsync();
capture.Video_Source = new VideoCaptureDeviceSourceSettings(devices[0]);
capture.Outputs_Add(new MP4Output("recording.mp4"), true);
await capture.StartAsync();

Migracja wizji komputerowej: Accord.Vision → VisioForge / OpenCvSharp

VisioForge .Net SDK zawiera wbudowane bloki wizji komputerowej oparte na OpenCV 4.11 i DLib. Integrują się bezpośrednio z potokami multimedialnymi VisioForge — bez ręcznej konwersji klatek ani zewnętrznych bibliotek. Do samodzielnego przetwarzania obrazów poza potokiem wideo można bezpośrednio używać OpenCvSharp.

Mapowanie klas

Funkcja Accord.VisionWbudowane w VisioForgeSamodzielny OpenCvSharp
`HaarObjectDetector` (wykrywanie twarzy)`CVFaceDetectBlock` — Kaskada Haar z wykrywaniem oczu/nosa/ust, rozmycie/pikselizacja twarzy`CascadeClassifier`
`HaarObjectDetector` (wykrywanie twarzy, DNN)`CVFaceDetectBlock` — Model Caffe SSD, filtrowanie pewności, akceleracja GPUModuł DNN
`HaarObjectDetector` (wykrywanie twarzy, DLib)`CVFaceDetectBlock` (CVD) — Detektor twarzy frontalnej DLib HOG+SVM
`MotionDetector``CVMotionCellsBlock` — Odejmowanie tła MOG2 ze śledzeniem obiektów`BackgroundSubtractorMOG2`
`BlobCounter``CVMotionCellsBlock` — Śledzenie blobów, wykrywanie konturów, zliczanie pojazdów`Cv2.FindContours()` + `Cv2.ConnectedComponents()`
`HistogramsOfOrientedGradients` (HOG)`CVFaceDetectBlock` — Wykrywanie osób HOG+SVM`HOGDescriptor`
`CannyEdgeDetector``CameraCoveredDetector` — Wykrywanie zasłonięcia obiektywu oparte na Canny`Cv2.Canny()`
`SpeededUpRobustFeatures` (SURF)`SIFT.Create()` (SURF opatentowany, użyj SIFT lub ORB)
`HoughLineTransformation``Cv2.HoughLinesP()`
Dopasowanie szablonów`Cv2.MatchTemplate()`

Wbudowane funkcje prywatności

Detektory VisioForge zawierają wbudowane przetwarzanie prywatności — bez dodatkowego kodu:

  • Rozmycie twarzy — Rozmycie gaussowskie stosowane do wykrytych obszarów twarzy
  • Pikselizacja twarzy — Blokowa pikselizacja obszarów twarzy
  • Pamięć podręczna regionów — Płynne wyniki między klatkami (konfigurowalny rozmiar pamięci podręcznej)

Przykład wykrywania twarzy w C#

Accord.NET — wykrywanie twarzy (przed)

C#
var detector = new HaarObjectDetector(
    new HaarCascade(HaarCascade.FaceHaarCascadePath));
detector.MinSize = new Size(30, 30);
Rectangle[] faces = detector.ProcessFrame(bitmap);

VisioForge — wykrywanie twarzy kaskadą Haar (po)

C#
var settings = new CVFaceDetectSettings
{
    DetectFrontalFace = true,
    DetectEyes = true,
    DetectNose = true,
    DetectMouth = true,
    MinFaceSize = new Size(30, 30),
    ScaleFactor = 1.1,
    DrawEnabled = true
};
var detector = new CVFaceDetectBlock(settings);
// Add to a MediaBlocks pipeline or use standalone

VisioForge — Detektor twarzy DNN (wyższa dokładność, wsparcie GPU)

C#
var settings = new CVFaceDetectSettings
{
    Confidence = 0.25,
    DrawEnabled = true,
    BlurFaces = true  // built-in privacy blur
};
var detector = new CVFaceDetectBlock(settings);

VisioForge — Detektor twarzy DLib

C#
var settings = new CVFaceDetectSettings
{
    DrawEnabled = true,
    MinFaceSize = new Size(30, 30)
};
var detector = new CVFaceDetectBlock(settings);

Samodzielny OpenCvSharp (alternatywa)

C#
using var cascade = new CascadeClassifier("haarcascade_frontalface_default.xml");
using var mat = Cv2.ImRead("image.jpg");
using var gray = new Mat();
Cv2.CvtColor(mat, gray, ColorConversionCodes.BGR2GRAY);
var faces = cascade.DetectMultiScale(gray, 1.1, 3, 0, new Size(30, 30));

Przykład wykrywania pieszych w C#

Accord.NET — wykrywanie pieszych HOG (przed)

C#
var hog = new HistogramsOfOrientedGradients();
double[] features = hog.ProcessImage(bitmap);
// Manual SVM classification needed

VisioForge — wykrywanie pieszych (po)

C#
var settings = new CVFaceDetectSettings
{
    DrawEnabled = true,
    VideoScale = 1.0,
    FramesToSkip = 2
};
var detector = new CVFaceDetectBlock(settings);

Przykład wykrywania ruchu w C#

Accord.NET — wykrywanie ruchu (przed)

C#
var detector = new MotionDetector(
    new TwoFramesDifferenceDetector(),
    new BlobCountingObjectsProcessing());
double motionLevel = detector.ProcessFrame(bitmap);

VisioForge — wykrywanie obiektów/ruchu (po)

C#
var settings = new CVMotionCellsSettings
{
    DrawEnabled = true
};
var detector = new CVMotionCellsBlock(settings);
// MOG2 background subtraction with automatic object tracking and ID assignment

Migracja uczenia maszynowego: Accord.MachineLearning → ML.NET

Do wnioskowania głębokiego uczenia podczas przetwarzania wideo VisioForge zapewnia wbudowane wykrywanie twarzy DNN (`CVFaceDetectBlock`), wykrywanie pieszych (`CVFaceDetectBlock`) i śledzenie obiektów (`CVMotionCellsBlock`). Dla modeli niestandardowych zintegruj ONNX Runtime z callbackami klatek.

Mapowanie klas ML

Funkcja Accord.MLZamiennik ML.NET
`SupportVectorMachine``SdcaMaximumEntropy` lub `LinearSvm`
`DecisionTree``FastTree` lub `FastForest`
`KMeans``KMeansTrainer`
`NaiveBayes``NaiveBayes` (ML.NET)
`NeuralNetwork` (Accord.Neuro)ONNX Runtime lub TensorFlow.NET
`PrincipalComponentAnalysis``PrincipalComponentAnalysis` (ML.NET contrib)

Lista kontrolna migracji

  • Audyt użycia Accord.NET — Zidentyfikuj, które domeny (wideo, wizja, ML) są używane
  • Przechwytywanie wideo → Zainstaluj pakiety NuGet VisioForge Video Capture SDK
  • Wizja komputerowa → Użyj wbudowanych detektorów VisioForge (twarz, pieszy, obiekt, zliczanie pojazdów) lub zainstaluj OpenCvSharp4 do samodzielnego użytku
  • Uczenie maszynowe → Zainstaluj pakiety NuGet ML.NET lub ONNX Runtime
  • Zamień klasy źródeł wideo — Zobacz tabelę mapowania powyżej
  • Zamień algorytmy wizji — Użyj VisioForge MediaBlocks lub przenieś na odpowiedniki OpenCvSharp
  • Zamień modele ML — Przetrenuj z ML.NET lub wyeksportuj do ONNX
  • Usuń pakiety NuGet Accord — Wyczyść zależności
  • Celuj w nowoczesny .NET — .NET 6-10
  • Testuj wieloplatformowo — VisioForge i OpenCvSharp wspierają Windows, macOS i Linux

Co zyskujesz po migracji

AspektAccord.NETPo migracji
StatusZarchiwizowanyAktywny rozwój (wszystkie zamienniki)
Framework.NET Framework.NET 6-10
Przechwytywanie wideoPodstawowe komponenty AForgeProfesjonalne SDK z efektami, streamingiem, nagrywaniem
Wizja komputerowaPrzestarzałe algorytmyWbudowane detektory VisioForge + pełne OpenCV 4.11 (2500+ algorytmów)
Uczenie maszynowePodstawowe algorytmyML.NET + ONNX (poziom produkcyjny)
Wykrywanie twarzyTylko podstawowy HaarHaar + DNN (Caffe SSD) + DLib HOG, z rozmyciem/pikselizacją
Wykrywanie obiektówPodstawowy licznik blobówOdejmowanie tła MOG2 + śledzenie z ID
Wykrywanie pieszychRęczne HOG+SVMWbudowany jednoliniowy detektor pieszych
Deep learningBrakONNX Runtime, TensorFlow.NET
PlatformyTylko WindowsWindows, macOS, Linux, iOS, Android
Efekty audioBrak40+ (EQ, reverb, chorus, 3D)
Akceleracja GPUBrakCUDA (OpenCvSharp), efekty GPU (VisioForge)

Frequently Asked Questions

Czy Accord.NET jest nadal utrzymywany?
Nie. Accord.NET jest zarchiwizowany na GitHub bez aktywnego rozwoju od 2018 roku. Nie są planowane łatki bezpieczeństwa, poprawki błędów ani wsparcie .NET 6+. Użyj VisioForge .Net SDK jako nowoczesnej alternatywy dla Accord.NET.
Czy mogę używać VisioForge do wykrywania twarzy bez OpenCvSharp?
Tak. VisioForge .Net SDK zawiera trzy wbudowane silniki wykrywania twarzy — Kaskada Haar (CVFaceDetectBlock), oparty na DNN (CVFaceDetectBlock) i oparty na DLib (CVFaceDetectBlock). Nie jest wymagana dodatkowa instalacja OpenCV.
Czy VisioForge obsługuje .NET 6, .NET 8, .NET 9 i .NET 10?
Tak. Wszystkie pakiety VisioForge .Net SDK obsługują .NET 6 do .NET 10, w tym wdrożenie wieloplatformowe na Windows, macOS i Linux.
Jaka jest najlepsza alternatywa dla Accord.NET do przechwytywania wideo w C#?
VisioForge Video Capture SDK .Net zastępuje Accord.Video (i bazowe AForge.Video) nowoczesnym asynchronicznym API, obsługą kamer internetowych, kamer IP (RTSP/ONVIF), przechwytywaniem ekranu i wyjściem do MP4, WebM i innych formatów.
Czy mogę migrować z Accord.NET stopniowo?
Tak. SDK VisioForge mogą współistnieć z pakietami Accord.NET podczas migracji. Zamieniaj jeden komponent na raz — zacznij od przechwytywania wideo, potem wizja, potem ML — i usuwaj pakiety NuGet Accord.NET po zakończeniu każdego kroku migracji.

Rozpocznij z VisioForge .Net SDK

Powiązane przewodniki migracji