VisioForge

Last updated: 2026년 1월

AForge.NET 대안: VisioForge .Net SDK 마이그레이션 가이드

개발이 중단된 AForge.NET을 현대적인 크로스 플랫폼 .NET SDK로 교체

AForge.NET(AForge.Video, AForge.Vision, AForge.Imaging)에서 현대적인 .NET 6-10 대안으로 마이그레이션하는 C# 개발자

왜 AForge.NET을 교체해야 하나요?

AForge.NET은 2013년 7월 이후 방치되었습니다 — 12년 이상 업데이트, 보안 패치 또는 버그 수정이 없습니다. .NET Framework 2.0을 대상으로 하며 품질이 다양한 커뮤니티 포크 없이는 현대적인 .NET 6-10에서 실행할 수 없습니다.

위험영향
보안 패치 없음비디오/이미지 처리의 취약점이 패치되지 않은 상태로 유지
.NET 6+ 지원 없음현대적인 .NET 기능, AOT 또는 크로스 플랫폼 배포 사용 불가
새로운 코덱 지원 없음H.265, AV1, VP9 또는 현대적인 컨테이너 형식 미지원
커뮤니티 없음포럼은 2012년 4월에 폐쇄, 활성 유지보수자 없음
DirectShow 의존성Microsoft에 의해 Media Foundation으로 대체되어 더 이상 사용되지 않음
Windows 전용macOS, Linux, iOS, Android를 대상으로 할 수 없음

AForge.Video → VisioForge Video Capture SDK .Net

클래스 매핑

AForge.Video 컴포넌트VisioForge 대체
VideoCaptureDeviceVideoCaptureCoreX + VideoCaptureDeviceSourceSettings
MJPEGStreamVideoCaptureCoreX + RTSPSourceSettings or UniversalSourceBlock
JPEGStreamVideoCaptureCoreX + IPCameraSourceSettings
ScreenCaptureStreamVideoCaptureCoreX + ScreenCaptureSourceSettings
FileVideoSourceMediaPlayerCoreX(재생) 또는 VideoEditCoreX(처리)
AsyncVideoSource내장 — 모든 VisioForge 소스는 기본적으로 비동기
NewFrameEventArgsOnVideoFrameBuffer 이벤트

C# 웹캠 캡처

AForge.NET — 웹캠 캡처 (이전)

C#
// AForge: Manual device enumeration, callback-based, no recording
var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
var videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += (sender, eventArgs) =>
{
    Bitmap frame = (Bitmap)eventArgs.Frame.Clone();
    pictureBox.Image = frame;
    // Manual recording requires separate code
};
videoSource.Start();

// Cleanup
videoSource.SignalToStop();
videoSource.WaitForStop();

VisioForge — C# 웹캠 캡처 (이후)

C#
// VisioForge: Typed API, async, preview + recording built-in
var capture = new VideoCaptureCoreX(videoView);  // Preview automatic
var devices = await DeviceEnumerator.Shared.VideoSourcesAsync();
capture.Video_Source = new VideoCaptureDeviceSourceSettings(devices[0]);
capture.Outputs_Add(new MP4Output("recording.mp4"), true);
await capture.StartAsync();

// Stop
await capture.StopAsync();

C# IP 카메라 RTSP / MJPEG 스트리밍

AForge.NET — MJPEG 스트림 (이전)

C#
// AForge: MJPEG only, no RTSP, no reconnection
var stream = new MJPEGStream("http://camera-ip/mjpg/video.mjpg");
stream.NewFrame += (sender, eventArgs) =>
{
    pictureBox.Image = (Bitmap)eventArgs.Frame.Clone();
};
stream.Start();

VisioForge — C# RTSP IP 카메라 캡처 (이후)

C#
// VisioForge: RTSP, RTMP, HLS, MJPEG — with auto-reconnection
var capture = new VideoCaptureCoreX(videoView);
capture.Video_Source = new RTSPSourceSettings(
    new Uri("rtsp://admin:pass@camera-ip/stream"));
capture.Outputs_Add(new MP4Output("recording.mp4"), true);
await capture.StartAsync();

C# 화면 캡처 및 녹화

AForge.NET — 화면 캡처 (이전)

C#
// AForge: Basic, CPU-intensive, no recording
var screenStream = new ScreenCaptureStream(Screen.PrimaryScreen.Bounds);
screenStream.NewFrame += (sender, eventArgs) =>
{
    pictureBox.Image = (Bitmap)eventArgs.Frame.Clone();
    // Must manually encode and write frames to create a recording
};
screenStream.Start();

VisioForge — C# 화면 녹화기 (이후)

C#
// VisioForge: Region selection, cursor capture, hardware encoding
var capture = new VideoCaptureCoreX(videoView);
capture.Video_Source = new ScreenCaptureSourceSettings();
capture.Outputs_Add(new MP4Output("screen.mp4", new H264EncoderSettings()), true);
await capture.StartAsync();

AForge.Vision → VisioForge 컴퓨터 비전 블록

클래스 매핑

AForge.Vision 컴포넌트VisioForge 대체
MotionDetectorCVMotionCellsBlock — MOG2 배경 차분으로 객체 추적 및 ID 할당
TwoFramesDifferenceDetectorCVMotionCellsBlock — MOG2 (history: 500 frames, variance threshold: 40)
SimpleBackgroundModelingDetectorCVMotionCellsBlock — 윤곽 기반 감지를 통한 자동 배경 모델
CustomFrameDifferenceDetector구성 가능한 CVMotionCellsSettings
MotionAreaHighlightingCVMotionCellsBlock(DrawEnabled = true) — 객체 ID가 포함된 바운딩 박스 그리기
GridMotionAreaProcessingVideo Capture SDK 이벤트를 통한 영역 기반 모션 감지
BlobCounterCVMotionCellsBlock — 블롭 추적, 윤곽 감지, 추적 라인을 통한 차량 카운팅

C# 모션 및 객체 감지

AForge.NET — 모션 감지 (이전)

C#
// AForge: Manual frame processing, no recording integration
var detector = new MotionDetector(
    new TwoFramesDifferenceDetector(),
    new MotionAreaHighlighting());

videoSource.NewFrame += (sender, eventArgs) =>
{
    float motionLevel = detector.ProcessFrame((Bitmap)eventArgs.Frame.Clone());
    if (motionLevel > 0.02f)
        Console.WriteLine($"Motion: {motionLevel * 100:F1}%");
};

VisioForge — 이벤트 기반 모션 감지 (Video Capture SDK)

C#
// Integrated detection during capture + recording
var capture = new VideoCaptureCoreX(videoView);
capture.Video_Source = new VideoCaptureDeviceSourceSettings(devices[0]);
capture.Outputs_Add(new MP4Output("recording.mp4"), true);

capture.OnMotionDetection += (s, e) =>
{
    if (e.Level > 30)
        Console.WriteLine($"Motion: {e.Level}%");
};

await capture.StartAsync();

VisioForge — CVMotionCellsBlock (MediaBlocks 파이프라인)

C#
// MOG2 background subtraction with automatic object tracking and IDs
var settings = new CVMotionCellsSettings
{
    DrawEnabled = true
};
var detector = new CVMotionCellsBlock(settings);
// Tracks objects with unique IDs using Euclidean distance matching

C# 얼굴 감지 및 보행자 감지 (AForge에서는 사용 불가)

클래스 매핑

기능VisioForge 블록
Haar 캐스케이드 얼굴 감지CVFaceDetectBlock — 정면/측면 얼굴, 눈, 코, 입 감지
DNN 얼굴 감지CVFaceDetectBlock — Caffe SSD 모델, 신뢰도 필터링, GPU 가속
DLib 얼굴 감지CVFaceDetectBlock (CVD) — DLib HOG+SVM 정면 얼굴 감지기
보행자 감지CVFaceDetectBlock — 내장 HOG+SVM 사람 감지기
렌즈 차단 감지CameraCoveredDetectorBlock — Canny 에지 감지

C# 얼굴 감지

AForge.NET (이전)

C#
// AForge had no built-in face detection — required manual Haar cascade code
// or using Accord.NET's HaarObjectDetector on top of AForge frames

VisioForge — Haar 캐스케이드 얼굴 감지

C#
var settings = new CVFaceDetectSettings
{
    DetectFrontalFace = true,
    DetectProfileFace = true,
    DetectEyes = true,
    DetectNose = true,
    DetectMouth = true,
    MinFaceSize = new Size(30, 30),
    ScaleFactor = 1.1,
    DrawEnabled = true,
    BlurFaces = false,    // set true for privacy blur
    PixelateFaces = false // set true for privacy pixelation
};
var detector = new CVFaceDetectBlock(settings);

VisioForge — DNN 얼굴 감지기 (높은 정확도, GPU 지원)

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

VisioForge — DLib 얼굴 감지기

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

C# 보행자 감지

AForge.NET (이전)

C#
// AForge had no pedestrian detection — required manual HOG+SVM implementation

VisioForge — 보행자 감지 (이후)

C#
var settings = new CVFaceDetectSettings
{
    DrawEnabled = true,
    VideoScale = 1.0,
    FramesToSkip = 2
};
var detector = new CVFaceDetectBlock(settings);
// Built-in HOG descriptors + SVM classifier, multi-scale detection

AForge.Imaging → VisioForge CV + OpenCvSharp

클래스 매핑

AForge.Imaging 기능VisioForge 내장독립형 OpenCvSharp
GaussianBlurCVProcess.BlurRegion() (kernel 23x23)Cv2.GaussianBlur()
PixellateCVProcess.PixelateRegion()커스텀 다운스케일/업스케일
CannyEdgeDetectorCameraCoveredDetector (thresholds 100/200)Cv2.Canny()
Erosion / DilationCVMotionCellsBlock에서 내부적으로 사용 (5x5 구조 요소)Cv2.Erode() / Cv2.Dilate()
BlobCounterCVMotionCellsBlock — 윤곽 감지, 면적/종횡비 필터링, 볼록 껍질Cv2.FindContours()
Grayscale모든 감지기에 내장된 BGR→Gray 변환Cv2.CvtColor()
Threshold모션 파이프라인에 내장된 이진 임계값 처리Cv2.Threshold()
ResizeBilinear모든 감지기 설정에 내장된 비디오 스케일링Cv2.Resize()
HistogramEqualizationCVFaceDetect에서 감지 향상에 사용Cv2.EqualizeHist()
HSLFiltering / 색상 필터Cv2.InRange() / Cv2.CvtColor()
HoughLineTransformationCv2.HoughLinesP()
SobelEdgeDetectorCv2.Sobel()
템플릿 매칭Cv2.MatchTemplate()

마이그레이션 체크리스트

  • AForge 참조 인벤토리 — 프로젝트의 모든 `using AForge.*` 찾기
  • VisioForge NuGet 패키지 설치
  • 비디오 소스 클래스 교체
  • 모션 감지 교체
  • 얼굴 감지 교체
  • 블롭/객체 감지 교체
  • 수동 프레임 루프 제거
  • 녹화/스트리밍 추가
  • 최신 .NET 대상 — .NET 6-10
  • 크로스 플랫폼 테스트
  • 이미지 처리의 경우 — VisioForge CV는 블러, 픽셀화, Canny, 모폴로지를 지원; 추가 필터에는 OpenCvSharp 사용

마이그레이션 후 얻는 것

기능AForge.NET마이그레이션 후
프레임워크.NET Framework 2.0.NET 6-10
플랫폼Windows 전용Windows, macOS, Linux, iOS, Android
비디오 캡처기본 DirectShow비동기 API를 갖춘 전문 SDK
녹화수동 구현내장 (MP4, MKV, AVI, WebM)
하드웨어 인코딩없음NVENC, QSV, AMF, VideoToolbox
스트리밍없음RTMP, HLS, SRT, NDI
오디오 효과없음40개 이상 (EQ, 리버브, 코러스, 3D)
비디오 효과없음GPU + CPU 파이프라인
얼굴 감지없음Haar + DNN (Caffe SSD) + DLib HOG, 블러/픽셀화 포함
모션 감지기본 프레임 차분MOG2 배경 차분 + ID를 통한 객체 추적
보행자 감지없음내장 HOG+SVM 사람 감지기
IP 카메라MJPEG만RTSP, RTMP, HLS, ONVIF
가상 카메라없음Zoom/Teams/OBS로 출력
유지보수방치 (2013)활발한 개발
보안패치되지 않음정기적인 업데이트

Frequently Asked Questions

AForge.NET은 아직 유지보수되고 있나요?
아니요. AForge.NET은 2013년 7월 이후 업데이트, 보안 패치 또는 .NET 6+ 지원 없이 방치되었습니다. 커뮤니티 포크가 존재하지만 품질과 유지보수가 다양합니다. 현대적인 AForge.NET 대안으로 VisioForge .Net SDK를 사용하세요.
C# 비디오 캡처를 위한 최고의 AForge.NET 대안은 무엇인가요?
VisioForge Video Capture SDK .Net은 웹캠, IP 카메라(RTSP/ONVIF), 화면 캡처 및 MP4, WebM 등의 형식으로 출력을 지원하는 현대적인 비동기 API로 AForge.Video를 대체합니다(.NET 6-10 지원).
VisioForge는 AForge.Imaging 필터를 대체하나요?
부분적으로. VisioForge CV에는 블러, 픽셀화, Canny 에지 감지, 모폴로지 연산, 그레이스케일 변환 및 히스토그램 균등화가 포함되어 있습니다. 전체 이미지 필터 범위(Sobel, Hough, 색상 필터링, 템플릿 매칭)에는 VisioForge와 함께 OpenCvSharp를 사용하세요.
AForge 없이 VisioForge를 C# 얼굴 감지에 사용할 수 있나요?
네. VisioForge .Net SDK에는 세 가지 내장 얼굴 감지 엔진 — Haar 캐스케이드, DNN 기반, DLib 기반 — 이 포함되어 있으며 내장 프라이버시 블러 및 픽셀화 기능이 있습니다. AForge 또는 Accord.NET 종속성이 필요하지 않습니다.
VisioForge는 .NET 6, .NET 8, .NET 9, .NET 10을 지원하나요?
네. 모든 VisioForge .Net SDK 패키지는 Windows, macOS, Linux, iOS, Android에서의 크로스 플랫폼 배포를 포함하여 .NET 6부터 .NET 10까지 지원합니다.
AForge.NET에서 점진적으로 마이그레이션할 수 있나요?
네. VisioForge SDK는 마이그레이션 중에 AForge.NET 패키지와 공존할 수 있습니다. 한 번에 하나의 컴포넌트를 교체하세요 — 비디오 캡처부터 시작하고, 그 다음 감지, 그 다음 이미지 처리 — 각 단계가 완료되면 AForge NuGet 패키지를 제거하세요.

마이그레이션 시작하기

관련 마이그레이션 가이드