Для обнаружения движения есть множество  быстрых и простых  способов.
На пример вот одно из моих "коронных"  

  решений "в лоб".... сделано очень примитивно и неоптимально.   
Но в простейшем случае работает . (Хотя в данном случае  нет поиска нескольких движущихся объектов  но абстрактное движение "вообще" вполне ловит и выделяет в рамку   )  

(Видимый "тормоз" просто низкая частота кадров  при записи гифа в реальности все работает  быстрее и по ощущениям  вообще без задержки  )
- Код: Выделить всё
 Function FastCompBW(C:Byte;Var R:TRect; Bitmap,B: TBitmap):bool;
// Сравнение двух кадров (ЧБ вариант)
Type
RGB1=Record  R,G,B  : byte; end;
Const
  DT:Boolean=false;
var
  MinX, MinY: Integer;
  MaxX, MaxY: Integer;
  X,Y: Integer;
  PixelPtr,PixelPtr2: PInteger;
  PixelRowPtr,PixelRowPtr2: PInteger;
  BytePerPixel: Integer;
 BW,BW2:Byte;
 PRGB,PRGB2:^RGB1;
  begin
  try
    Bitmap.BeginUpdate(False);
    Result:=False;
    //RawImage := Bitmap.RawImage;
    PixelRowPtr := PInteger(Bitmap.RawImage.Data);
    PixelRowPtr2 := PInteger(B.RawImage.Data);
    BytePerPixel := Bitmap.RawImage.Description.BitsPerPixel div 8;
    minX:= Bitmap.Width; MaxX:=0;
    minY:= Bitmap.Height; MaxY:=0;
    for Y := 0 to Bitmap.Height - 1 do begin
      PixelPtr := PixelRowPtr;
      PixelPtr2 := PixelRowPtr2;
      for X := 0 to Bitmap.Width - 1 do begin
       PRGB :=Pointer(PixelPtr);
       PRGB2:=Pointer(PixelPtr2);
         BW:=(PRGB^.R+PRGB^.G+PRGB^.B) div 3;
        BW2:=(PRGB2^.R+PRGB2^.G+PRGB2^.B) div 3;
      If   ( Abs( bw - bw2 )> C ) then
      begin
          result:=True;
          MaxX:=Max(X,MaxX); MaxY:=Max(MaxY,Y);
          minX:=min(minX,X); minY:=min(minY,Y);
          R:= rect(minX, minY, maxX,maxY);
       end;
        Inc(PByte(PixelPtr), BytePerPixel);
        Inc(PByte(PixelPtr2), BytePerPixel);
      end;
      Inc(PByte(PixelRowPtr),Bitmap.RawImage.Description.BytesPerLine);
      Inc(PByte(PixelRowPtr2),Bitmap.RawImage.Description.BytesPerLine);
    end;
  finally
  Bitmap.EndUpdate(False);
  end;
end;
Однако фокус в том, что скорости  при "прямом доступе"  более чем  достаточно что бы использовать даже это "рукоделье" без уменьшения разрешения .  
Зы
О да! Тут точно не  одна "строчка кода". + есть встроенное "обесцвечивание".  

 но и задача совсем другая чем "просто пройти по коридору"  

  то бишь сравнить два изображения на тождество ..
Хотя  разнообразная оптимизация просто напрашивается например можно проверять  
не каждую точку  а 
сетку точек причем  со смещением от кадра к кадру.(что будет даже быстрее чем при использовании предварительного масштабирования + исчезнет проблема "мыла" в изображении    )
Зы Зы
Испытать детектор движения  лично можно тут  
  Truba_DS_0_0059_14_2_5_Bin.7z 
  "Запуск трансляции ." ->"Окно цифровые эффекты" -> фильтр 'Выделить движение'  Чувствительность "меньше лучше "...  экспериментально лучшие значение около 50... требуется веб камера или её эмулятор...